使用 require_once() 和 include_once() 的例子见最新的 PHP
源程序发行包中的 PEAR 代码。
注: require_once() 是 PHP 4.0.1pl2 中新加入的。
注: 要注意 require_once() 和 include_once()
在大小写不敏感的操作系统中(例如
Windows)的行为可能不是你所期望的。 例子 11-8.
require_once() 在 Windows 下不区分大小写
<?php
require_once("a.php"); // this will include a.php
require_once("A.php"); // this will include a.php again on Windows!
?>
警告
Windows 版本的 PHP 在 4.3.0
版之前不支持该函数的远程文件访问,即使
allow_url_fopen 选项已被激活。
require()
require() 语句包括并运行指定文件。
require()
语句包括并运行指定文件。有关包括如何工作的详细信息见
include() 的文档。
require() 和 include()
除了怎样处理失败之外在各方面都完全一样。include()
产生一个警告而 require()
则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用
require() 吧。include()
就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
注: 在 PHP 4.0.2 之前适用以下规则:require()
总是会尝试读取目标文件,即使它所在的行根本就不会执行。条件语句不会影响
require()。不过如果 require()
所在的行没有执行,则目标文件中的代码也不会执行。同样,循环结构也不影响
require()
的行为。尽管目标文件中包含的代码仍然是循环的主体,但
require() 本身只会运行一次。
include()
include() 语句包括并运行指定文件。
以下文档也适用于
require()。这两种结构除了在如何处理失败之外完全一样。include()
产生一个警告而 require()
则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用
require()。include()
就不是这样,脚本会继续运行。同时也要确认设置了合适的
include_path。
当一个文件被包括时,其中所包含的代码继承了 include
所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。
因为 include() 和 require()
是特殊的语言结构,在条件语句中使用必须将其放在语句组中(花括号中)。
处理返回值:可以在被包括的文件中使用 return()
语句来终止该文件中程序的执行并返回调用它的脚本。同样也可以从被包括的文件中返回值。可以像普通函数一样获得
include 呼叫的返回值。
注: 在 PHP 3
中,除非是在函数中调用否则被包括的文件中不能出现
return。在此情况下 return()
作用于该函数而不是整个文件。
注意以上例子中的区别。第一个在被包括的文件中用了
return()
而另一个没有。其它几种把文件"包括"到变量的方法是用
fopen(),file() 或者 include()
连同输出控制函数一起使用。
注:
由于这是一个语言结构而非函数,因此它无法被"变量函数"调用。
参见
require(),require_once(),include_once(),readfile(),virtual()
和 include_path。
字体:大 中 小
http://www.shengfang.org/blog/p/phpredeclareINCLUDEREQUIRE.php