PHP require和include有什么区别?

时间:2010-09-02 10:33:10

标签: php

我知道PHP需要的基本用法,需要一次,包含和包含一次。但我很困惑何时应该使用它们。

示例:我有3个文件,例如:settings.php,database.php和index.php。

在database.php文件中,我写道:

require_once 'settings.php';

然后在index.php中,我写道:

require_once 'settings.php';
require_once 'database.php';

所以我加载settings.php两次,这样可以吗?任何使用这些功能的提示?

8 个答案:

答案 0 :(得分:19)

  • include包含一个文件,如果找不到该文件则会发出警告。

  • require包含一个文件,如果找不到该文件则会引发致命错误。

  • include_oncerequire_once执行相同的操作,但只有,如果文件尚未加载。

但是,对_once函数之一的需求通常是设计糟糕的表现。您应该以明确定义包含在哪里的内容的方式构建脚本。

settings.php选择一个地方 - 可能index.php。不需要在database.php中另外包含它。

答案 1 :(得分:3)

根据PHP documentation on require_once,您不会加载settings.php两次;

  

require_once()语句是   除了PHP之外,与require()相同   检查文件是否已经存在   包括,如果是,不包括   (要求)再次

答案 2 :(得分:2)

include()require() 之间的区别出现在无法找到包含的文件时:include() 将引发警告 (E_WARNING) 并且脚本将继续,而 require() 将引发致命错误 (E_COMPILE_ERROR) 并停止脚本。如果包含的文件对脚本的其余部分正确运行至关重要,那么您需要使用 require()

欲知更多详情:Difference between Include and Require in PHP

答案 3 :(得分:0)

require_once会检查文件是否已包含在内并且不再包含该文件,因此请不要担心它不会加载settings.php两次。

答案 4 :(得分:0)

如果您的文件很重要,我认为您应该使用“require”,
但如果没有,我总是使用include,就像peka的答案一样 如果找不到文件,则require包含一个文件并抛出致命错误。

答案 5 :(得分:0)

  • require
    当您的应用程序需要文件时,例如重要的消息模板或包含配置变量的文件,否则应用程序将无法运行。

  • require_once
    文件包含的内容在随后包含时会产生错误的内容,例如 function important() { /* important code */}在您的应用程序中绝对是必需的,但是由于无法重新声明函数,因此不应再次包含。

  • include 当不需要文件时,应用程序流程应在找不到时继续进行,例如
    非常适合引用当前作用域或其他内容中的变量的模板

  • include_once
    可选的依赖项,这些依赖项会在后续加载或远程文件包含时产生错误,由于HTTP开销,您不想重复执行两次

答案 6 :(得分:0)

差异:-

include()提取数据并加载当前文件中包含的内容,并加载同一文件多次。

include_once()include()的工作原理相同,但是如果文件已经被包含,我们将使用include_once(),它将不再被包含。 如果在Like中多次使用相同的文件:-include_once 'setting.php';使用第二次include_once 'settting.php';,请忽略它们。

require()与include()相同。

require_once()(如果已经包含文件,则不会再次包含。)

include()include_once()发出警告,脚本将继续。

require()require_once()产生严重错误并停止脚本。

更好地在脚本中使用

require_once()

答案 7 :(得分:-2)

在Php中使用include_once和require_once将一个页面添加到另一个页面示例:您想在编辑页面edit.php中添加数据库连接页面conn.php,您可以使用它。 但是include_once和require_once之间有不同,如果include_once函数得到任何错误它将警告你并执行代码但require_once函数找到任何错误它将停止脚本并且不执行代码。