在我的示例中,我什么时候应该使用include、require和require_once?

11 浏览
0 Comments

在我的示例中,我什么时候应该使用include、require和require_once?

这个问题已经有了答案:

可能是重复的问题:

我何时应该使用require_once而不是include?

例如, 如果我有:

header part(header.php)
footer part(footer.php)
list of functions (functions.php)
list of constants (constants.php)
connect to database part(connection.php)
footer part + close the connection part(footer.php)

在这些例子中, 我应该使用include, require 或者 require_once, 请注意为什么?

admin 更改状态以发布 2023年5月20日
0
0 Comments

除非我需要多次包含某个文件(比如某个在页面上出现多次的模板),否则我总是使用require_once。但在模板的情况下,把模板制作为可以有多个实例的类会是一个更好的模式,因此该文件只会被包含一次。例如:

class TemplateExample() {
    function display() {
        echo "I'm a template!";
    }
}

而且

$template = new TemplateExample();
$template->display();
echo "Some text between the templates.";
$template->display();

值得注意的是,有一些资源指出不要使用require_onceinclude_once,因为它们比requireinclude慢。虽然它们确实更慢,但这并不明显;要包含大约10,000次才能使你的脚本变慢一毫秒。这种差异非常小,你不必担心速度问题。

0
0 Comments

对于包含函数、类和其他工具的文件,通常使用require_once,以便在多个库中不会意外重新声明任何内容,从而破坏功能。

  • functions.php
  • constants.php
  • connection.php

对于模板文件,通常使用require,因为它们应该能够多次包含而不会导致问题。(尽管在这两个文件的特定情况下,这不太可能发生。)

  • header.php
  • footer.php

你永远不要使用include(或include_once)。它就像require,但当文件不存在时仅显示警告 - 这可能不是原本想要的结果。

现在你注意到你的页脚关闭了数据库连接。通常要避免在模板文件中引起副作用。此外,关闭数据库连接可能是不必要的。(而且,既然你可以关闭它,这里有一些建议:使用 PDO 代替!)

0