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

28 篇文章 0 订阅

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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值