PHP中require和require_once有什么区别?

时间:2018-05-02 05:05:17

标签: php

require("file.php");
require_once("file.php");

两者都包含所需的文件,如果找不到文件或存在任何其他问题,则会发出致命错误。如果发生错误,两者都会停止执行。

这两个功能有什么区别?

2 个答案:

答案 0 :(得分:2)

require_once()语句与require()相同,但PHP会检查文件是否已被包含,如果是,则不再包括(require)它。

答案 1 :(得分:0)

如果文件丢失,Include将让脚本继续运行(带警告)。

如果丢失,则需要崩溃。

如果你使用include作为100%可选的东西,那么include仍然会有效并且需要会爆炸。

如果你包含一些你认为是可选的东西,但是你的脚本的其他部分使用了它,那么你的脚本会在那里爆炸,你可能不知道为什么。

这不是编写程序的好方法。

否则,两者之间没有区别。

修改

在典型用法中,无论您选择在95%的时间内使用include还是require都无关紧要。

因此,您应该坚持require(或require_once),告诉您何时丢失所需的文件。

包含文件内包含文件的错误,包含文件内部的文件,如果缺少一个包含顶部的文件,则很难找到。

有些人更喜欢include,因为他们想要使用“功能” 道格拉斯·克罗克福德是一个JavaScript / Java / C ++人,而不是PHP,但他认为,为了你的理智,应该避免看起来像错误或副作用与错误无法区分的功能。

请注意,如果您的整个项目完全基于类(或功能),并且完全模块化,那么除了在应用程序初始化时重置配置对象上的值之外,您应该没有太多用于包含(对于已经require d。

的对象,包括admin-override选项或dev-debugging选项

正如您可能猜到的,还有其他方法可以做到这一点。

这些只是建议,但建议来自比我更聪明的人,拥有数十种语言的数十年经验。 参考:Difference between "include" and "require" in php