PHP编程
PHP Include 文件
包含
在 PHP 中包含文件有两种方法:include
和 require
。
include "file.php";
require "file.php";
这两者执行的功能本质上是相同的,但有一个主要区别:include
在包含文件过程中出现问题时只会抛出一个警告;而 require
在这种情况下会停止执行。因此,脚本的依赖通常会使用 require
来调用。
在 4.0.2 版本之前,require
即使代码没有被执行,也会尝试读取文件。这意味着如果文件不存在,即使该文件的代码不会被执行,也会抛出错误。以下代码:
<?php
if (false) {
require "some_nonexistent_file.php";
}
require "another_nonexistent_file.php";
在 4.0.2 版本之前,第一次 require
会失败,而第二次则会失败,在其他版本中也是如此。
Include Once
此外,有许多代码库、类定义和变量声明,你可能希望将其拆分到一个包含文件中,但这些文件只应该在当前脚本中被调用一次。为了确保这些库文件只包含一次,PHP 提供了 include_once()
和 require_once()
函数。
每次调用其中一个函数时,PHP 解析器会记住它已经调用过哪些文件。如果另一个 include_once()
或 require_once()
尝试加载相同的文件,解析器将跳过该命令。不会产生任何错误或警告,它会像命令成功执行了一样。因为实际上,文件已经被包含过了。
重要提示: 如果你使用 include_once()
包含一个文件,之后再使用 include()
包含该文件,则该文件会被第二次包含。如果一个文件通过 include_once()
被包含,而同一文件通过 require_once()
被调用,则该文件不会再次被包含。include_once()
和 require_once()
有相同的“记忆”,可以理解为它们共享同一“记忆”状态。