【问题标题】:What is the difference between require and require_once in PHP?PHP 中的 require 和 require_once 有什么区别?
【发布时间】:2018-10-12 03:20:39
【问题描述】:
require("file.php");
require_once("file.php");

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

这两个函数有什么区别?

【问题讨论】:

标签: php


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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 的对象上。

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2013-03-06
      • 2010-10-10
      • 2011-01-25
      相关资源
      最近更新 更多