在我的示例中,我什么时候应该使用include、require和require_once?
在我的示例中,我什么时候应该使用include、require和require_once?
这个问题已经有了答案:
可能是重复的问题:
例如, 如果我有:
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日
除非我需要多次包含某个文件(比如某个在页面上出现多次的模板),否则我总是使用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_once
或include_once
,因为它们比require
和include
慢。虽然它们确实更慢,但这并不明显;要包含大约10,000次才能使你的脚本变慢一毫秒。这种差异非常小,你不必担心速度问题。
对于包含函数、类和其他工具的文件,通常使用require_once
,以便在多个库中不会意外重新声明任何内容,从而破坏功能。
functions.php
constants.php
connection.php
对于模板文件,通常使用require
,因为它们应该能够多次包含而不会导致问题。(尽管在这两个文件的特定情况下,这不太可能发生。)
header.php
footer.php
你永远不要使用include
(或include_once
)。它就像require
,但当文件不存在时仅显示警告 - 这可能不是原本想要的结果。
现在你注意到你的页脚关闭了数据库连接。通常要避免在模板文件中引起副作用。此外,关闭数据库连接可能是不必要的。(而且,既然你可以关闭它,这里有一些建议:使用 PDO 代替!)