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

php include,require等4种引入文件方式的总结

2017-02-10 20:14 513 查看
php引入文件与jsp类似。inlcude();include_once();require();require_once().

总结一下这4种引入方式。
include():
将引入文件中的代码直接加载到目的文件中(类似复制过来)。这样在解析时就是目的文件中有引入文件的代码。
注意一点,当引入文件中又引用了其他我文件时,要注意路径的变化。此时由于引用文件中的代码被“复制”到了目的文件中。
所以引用文件中的引用文件的路径应该是相对与目的文件的路径,不在是相对与引用文件的路径。include()有返回值,false/true。
include_once(),与include的不同在与他会检查引入的文件在目的温江中是否已经被引用过。
如果已经被引用过了,那么就不再引用(此时include-once不执行)。
而include则是会继续引入,不管此前是否引用过。
也就是非要不可。
而include(包括include_once())则不是,如果文件没找到或者没有正常被引用,程序会继续执行后面的代码。并且这个函数没有返回值。
require_once(),与require的不同与前面include与include_once()的不同一样。会检查文件此前是否被引用过。


这4中方式或者2种方式与php内核有关。include的引用不会去“解释给内核”,说需要这个文件,本文件才能执行。所以就算include的文件找不到了最多也就是影响涉及到include进来了文件的代码,不会影响本文件的继续执行。而require不是,它会通知内核必须要require的文件,没有这个文件,本文件不能正确执行,所以php内核在运行此文件时首先就去找require的文件,如果require的文件找不到或者引用有问题就会报错,终止执行。由此也可以看到,require的执行顺序要高于include的执行顺序。

不过就安全性来说,require要高于include,但是效率却明显低于include。

session_start()在有引用文件中的使用也有变化。

如果不能准确的知道引用的文件是否也用了session_start()。最好把session_start()换为:

if(isset($_session))
{
session_start();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息