require() 和 include()只有一个区别 ---- 处理失败的方式不同。 include()会产生一个警告,同时会继续执行脚本;require()会导致一个终极错误并停止脚本的执行。
关于二者的区别,网上还有一些, 但是具体测试下来,只有上面那个区别是真实存在的。下面说两个网上流传的典型的区别(实际是没有的,或者因为版本原因而消失了)
1. require() 不能受任何控制结构的控制,即:判断条件为假也会执行require语句。
在 PHP 4.0.2 之前适用以下规则:require() 总是会尝试读取目标文件,即使它所在的行根本就不会执行。条件语句不会影响 require()。不过如果 require() 所在的行没有执行,则目标文件中的代码也不会执行。同样,循环结构也不影响 require() 的行为。尽管目标文件中包含的代码仍然是循环的主体,但 require() 本身只会运行一次。
2. require()语句包含的文件不能有返回值。试图在require()语句中返回值将会产生一个解析错误。
这个区别不知道是怎么来的, 但是我在PHP Version 5.4.16上测试的结果却是可以有返回值的, 具体以前的版本是不是不允许就不清楚了, 欢迎大家提醒