php require vs. include

1. require在代码执行前被预处理,被引用的文件内容会替代掉require语句。
   include在代码执行到那一句才被处理,相当于执行流跳到被执行的文件,执行完再跳回来。


2. require的文件不存在会报fatalerror,并终止。include的文件不存在时只会warnning并继续执行。


3. require的文件中只能放置:变量初始化,函数的定义以及类和接口的定义,不能放置控制结构尤其是return。include则不做限制。
   所以建议把上述那些定义之类的静态的东西在文档头部require,需要执行的代码片段在相应的位置include。为了保证定义不重复,可以在被引用的文件里用define和defined判断,可以用require_once。


4. require没有返回值的功能,上一条也说了被引用的文件中不能有return。include的文件中如果return了一个值,那么include的指令会返回它,没有则是null。


5. require和include被引用的文件中都可以访问之前的全局域变量。


6. 和jsp比较的话,require相当于<%@ include="..." %>标签。include相当于<jsp:include page="..." />标签。
posted @ 2014-05-09 17:30  绝不原创的飞龙  阅读(8)  评论(0编辑  收藏  举报  来源