PHP Include 文件

包含

在 PHP 中包含文件有两种方法:includerequire

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() 有相同的“记忆”,可以理解为它们共享同一“记忆”状态。

Last modified: Thursday, 9 January 2025, 11:17 PM