以前在写程序的时候想过这个问题,今天刚好看到关于此方面的问题,所以就整理,总结下来!
这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行
include 包括 没有也可以
require 需要 一定要有
include 出错时返回一个错误但继续执行
require 出错时产生一个致命错误,结束运行
---------------------------------------------------------------------------------
- require() :如果文件不存在,会报出一个fatal error.脚本停止执行
- include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行
这里特别要注意的是:
使用include()文件不存在时,脚本继续执行,这种情况只出现在PHP 4.3.5之前,这一点,往往被人忽视。
推荐使用require_once()和include_once(),可以检测文件是否有重复包含。
--------------------------------------------------------------------------------------
还有一个区别,这样来描述:
只要有require,总会包含指定的文件;
如果程序没有执行到include,指定的文件不会被包含,比如if条件不成立,在if语句里用include
(以下是这一区别的详细介绍)
注: 在 PHP 4.0.2 之前适用以下规则:require() 总是会尝试读取目标文件,即使它所在的行根本就不会执行。条件语句不会影响 require()。不过如果 require() 所在的行没有执行,则目标文件中的代码也不会执行。同样,循环结构也不影响 require() 的行为。尽管目标文件中包含的代码仍然是循环的主体,但 require() 本身只会运行一次。
------------------------------------------------------------------------------------------------------------03。13