跳转到内容

PHP 编程/PHP 包含文件

来自维基教科书,开放的书籍,开放的世界

在 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 会失败,而在其他所有版本中,第二次 require 会失败。

包含一次

[编辑 | 编辑源代码]

此外,还存在许多代码库、类定义和变量声明,您可能希望将其分离到一个包含文件中,但这些文件应该只被调用到当前脚本中一次。为了确保这些库只被包含一次,php 包含了 include_once()require_once() 函数。

每次调用这些函数之一时,php 解析器都会记住它调用的文件。如果另一个 include_once()require_once 尝试加载相同的文件,解析器将简单地跳过该命令。它不会产生任何错误或警告,它只会像该命令已成功执行一样执行。这是因为,事实上,它确实已经执行了。

重要:如果您使用 include_once() 包含一个文件,然后稍后使用 include() 包含该文件,则该文件将被包含第二次。如果使用 include_once() 包含一个文件,并且使用 require_once() 调用同一个文件,则该文件将不再被包含。Include_once() 和 require_once() 具有相同的“内存”,就好像它们一样。


华夏公益教科书