您的位置:首页 > 产品设计 > UI/UE

php中require和include的区别

2010-05-15 23:23 309 查看
php中有两个类似的语言结构 include和require. 两个的区别在手册上是这么说的:
require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。

意思就是如果require的文件不存在,测脚本会停止运行,而如果include的文件不存在,仅仅会有一个警告,脚本会继续执行。所以一般情况下require的文件都是一些必需的配置文件,如果没有此文件脚本执行就没意义了。
另外网上有介绍说require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require
在手册中是这么说的:
在 PHP 4.0.2 之前适用以下规则:require() 总是会尝试读取目标文件,即使它所在的行根本就不会执行。条件语句不会影响 require()。不过如果 require() 所在的行没有执行,则目标文件中的代码也不会执行。同样,循环结构也不影响 require() 的行为。尽管目标文件中包含的代码仍然是循环的主体,但 require() 本身只会运行一次。
这是在4.0.2以前的版本适用。测试了一下php5,此规则不适用了。如果流程中不会执行require语句,则require不会执行,所以“不管require语句放在文件的什么地方,都会先执行”的说法就不正确了。
另外使用这两个语句还要注意:
当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中应被当作 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。
如果被包含文件里的php语句没有包含在php标记中,包含之后仅仅是把目标文件内容显示出来,而不是作为php语句处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: