【发布时间】:2014-03-15 21:01:57
【问题描述】:
PHP中的“include_once”和“require_once”有什么区别?
include_once "connect_to_mysql.php";
require_once "connect_to_mysql.php";
这些有什么区别吗?
【问题讨论】:
标签: php
PHP中的“include_once”和“require_once”有什么区别?
include_once "connect_to_mysql.php";
require_once "connect_to_mysql.php";
这些有什么区别吗?
【问题讨论】:
标签: php
如果文件丢失,包含将使脚本继续运行(带有警告)。
Require 会在丢失时崩溃。
如果您将 include 用于 100% 可选的东西,那么 include 仍然可以工作并且 require 会爆炸。
如果您包含一些您认为是可选的内容,但您的脚本的其他部分使用它,那么您的脚本将在那里爆炸,您可能不知道为什么。
这不是编写程序的好方法。
否则,两者之间没有区别。
在典型用法中,95% 的情况下,您选择使用 include 还是 require 都无关紧要。
因此,您应该坚持使用require(或require_once),以便在您丢失所需文件时告诉您。
在被包含文件中包含文件、在被包含文件中、当顶部缺少一个包含时所产生的错误真的很难追查。
有些人更喜欢include,因为他们想使用那个“功能”。
Douglas Crockford 是 JavaScript/Java/C++ 专家,而不是 PHP,但他建议为了您的理智,应该避免看起来像 bug 或与 bug 无法区分的副作用的功能。
请注意,如果您的整个项目完全基于类(或函数式)并且完全模块化,那么除了在应用程序初始化时重置配置对象上的值(包括 admin-override 选项或 dev-debugging 选项)在已经是 required 的对象上。
正如您可能猜到的那样,还有其他方法可以做到这一点。
这些只是建议,但建议来自比我更聪明、在数十种语言方面拥有数十年经验的人。
【讨论】:
require_once() 和 include_once() 之间有什么区别?”。
include 将继续执行并发出警告,require 将在资源丢失的情况下以致命错误终止。也许你可以再读一遍前两条语句。此外,他并没有要求include 和include_once 之间的增量,因此为了讨论,include 和require 之间的整体差异适用于所有实例。约定优于配置。
include_once 会抛出警告,但不会阻止 PHP 执行脚本的其余部分。
require_once 将抛出 错误 并且 将阻止 PHP 执行脚本的其余部分。
【讨论】:
不同之处在于require_once() 在失败时会产生致命错误,而include_once() 只会产生警告。
【讨论】:
页面停止执行 require_once 无法加载所需的文件,另一方面 include_once 将继续,而不是加载包含文件时出错。
【讨论】: