【问题标题】:What is difference between "include_once" and "require_once" in PHP? [duplicate]PHP中的“include_once”和“require_once”有什么区别? [复制]
【发布时间】:2014-03-15 21:01:57
【问题描述】:

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

include_once "connect_to_mysql.php";

require_once "connect_to_mysql.php";

这些有什么区别吗?

【问题讨论】:

标签: php


【解决方案1】:

如果文件丢失,包含将使脚本继续运行(带有警告)。

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 的最佳方式是什么? @Norguard
  • @AmalMurali 这正是答案,以人类可以理解的格式:include 将继续执行并发出警告,require 将在资源丢失的情况下以致命错误终止。也许你可以再读一遍前两条语句。此外,他并没有要求includeinclude_once 之间的增量,因此为了讨论,includerequire 之间的整体差异适用于所有实例。约定优于配置。
  • @FarwallGhost:请看this answer
  • 它没有回答问题..
【解决方案2】:

include_once 会抛出警告不会阻止 PHP 执行脚本的其余部分。

require_once 将抛出 错误 并且 将阻止 PHP 执行脚本的其余部分。

【讨论】:

  • 很好的简短解释
【解决方案3】:

不同之处在于require_once() 在失败时会产生致命错误,而include_once() 只会产生警告。

【讨论】:

    【解决方案4】:

    页面停止执行 require_once 无法加载所需的文件,另一方面 include_once 将继续,而不是加载包含文件时出错。

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 2018-10-12
      • 2011-01-25
      • 2010-12-17
      • 2012-07-08
      相关资源
      最近更新 更多