PHP中的“include_once”和“require_once”有什么区别?

php
2022-08-30 14:26:59

PHP中的“include_once”和“require_once”有什么区别?

include_once "connect_to_mysql.php";

require_once "connect_to_mysql.php";

这两者之间有什么区别吗?


答案 1

如果文件丢失,Include 将允许脚本继续运行(并发出警告)。

如果缺少“需要”,它将崩溃。

如果您将包含用于100%可选的内容,那么包含仍然有效,并且要求将爆炸式增长。

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

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

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

编辑

在典型用法中,95%的情况下,您选择使用或都无关紧要。includerequire

因此,您应该坚持(或),以告诉您何时缺少所需的文件。requirerequire_once

将文件包含在包含的文件内,包含在包含的文件内部,当缺少一个包含顶部时,所产生的错误确实很难追踪。

有些人更喜欢,因为他们想使用这个“功能”。
Douglas Crockford 是一个 JavaScript/Java/C++的人,而不是 PHP,但他建议,为了你的理智,应该避免看起来像 bug 的功能,或者与 bug 无法区分的副作用。include

请注意,如果你的整个项目是完全基于类的(或功能性的),并且完全是模块化的,那么你不应该有太多的用处,除了在应用程序初始化时重置配置对象上的值(包括管理员覆盖选项或开发调试选项)在已经是d的对象上。require

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

这些只是建议,但建议来自比我聪明的人,他们有几十种语言的经验。


答案 2

include_once将引发警告不会阻止 PHP 执行脚本的其余部分。

require_once将引发错误,并阻止 PHP 执行脚本的其余部分。


推荐