PHP 编程/PHP 包含文件
外观
< PHP 编程
在 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
会失败,而在其他所有版本中,第二次 require
会失败。
此外,还存在许多代码库、类定义和变量声明,您可能希望将其分离到一个包含文件中,但这些文件应该只被调用到当前脚本中一次。为了确保这些库只被包含一次,php 包含了 include_once()
和 require_once()
函数。
每次调用这些函数之一时,php 解析器都会记住它调用的文件。如果另一个 include_once()
或 require_once
尝试加载相同的文件,解析器将简单地跳过该命令。它不会产生任何错误或警告,它只会像该命令已成功执行一样执行。这是因为,事实上,它确实已经执行了。
重要:如果您使用 include_once()
包含一个文件,然后稍后使用 include()
包含该文件,则该文件将被包含第二次。如果使用 include_once()
包含一个文件,并且使用 require_once()
调用同一个文件,则该文件将不再被包含。Include_once() 和 require_once() 具有相同的“内存”,就好像它们一样。