include/require 的区别

include/require(还有include_once/require_once) 是PHP中引用文件必不可少的命令。他们都会读入文件,替换包含语句,并执行读入文件中的代码。那么他们有什么区别呢?

 

1, _once 后缀区别,故名思议,就是只包含一次,zend 引擎会检查是否已经包含了一次,如果已包含,则忽略之。可避免重复包含/运行脚本。当然,这个check 是需要昂贵代价的,呵呵!不过目前来说,为了保证不被重复包含,我们习惯上仍然推荐使用 _once 系列。所以我们必须要明白这里的区别,并进行相应的取舍。

 

2, 读入文件的时机不同。

 

require 是在 引擎编译脚本的时候一次性导入的。就是说在编译阶段,就会读入文件替换该 require 语句。当然,这个时候并未运行该段脚本。是先编译后运行的。这个我们将在今后专门用一个篇幅描述php 的运行原理。

 

include 是在脚本运行到该语句时才读入文件并执行的。

 

因此,require 只要出现,就会导入,及时用 条件判断包含文件。require 适合在执行前一次性载入静态脚本。而include 适合在运行时动态读入静态、动态脚本。

 

3,错误处理不同

require 为绝对包含,因为在编译阶段发生,如果这部分发生错误,会抛出致命错误,将终止于编译阶段,不会执行脚本。

include 是在运行中动态载入的,如果发生错误,将会忽略,继续执行脚本。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值