PHP中 include,include_once,require,require_once的比较

本文详细对比了PHP中include与require及它们的_once版本之间的差异,包括错误处理方式、执行速度和重复加载处理等方面。此外还提供了路径问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【学习目的】PHP中 include,include_once,require,require_once的比较


【所用函数】include,include_once,require,require_once,

dirname(__FILE__) 取到的是当前文件的绝对路径,比起相对路径,查找速度是最快的。


① include 和 require 语句用于在执行流中向其他文件插入有用的的代码。

include 和 require 很相似,除了在错误处理方面的差异:

  • require 会产生致命错误 (E_COMPILE_ERROR),并停止脚本
  • include 只会产生警告 (E_WARNING),脚本将继续

因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。


②四个函数在执行速度方面,相差无几。


区别在于,如果存在一个文件多次加载的情况,include和require函数会加载多次,而 include_once和require_once函数只会加载一次。同时处理加载失败的情况不同,include() 和include_once() 产生一个警告而 require() 和 require_once() 则导致一个致命错误。

(1)include_once()语句在脚本执行期间包含并运行指定文件。此行为和 include()语句类似,唯一区别是include_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。
include_once()应该用于嵌套包含的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

(2)require_once()语句在脚本执行期间包含并运行指定文件。此行为和 require()语句类似,唯一区别是require_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。

③ 注意事项

(1)路径问题:特别是嵌套包含的时候,一定得注意包含文件的路径。

例如:A文件包含B文件,B文件包含C文件,ABC文件均不在同一文件夹下时候,特容易出错。

解决方案:

可以使用dirname(__FILE__)语句,这句的意思是获得当前脚本的绝对路径。

例如:include(dirname(__FILE__)."/inc/conn.inc.php");

 dirname(dirname(__FILE__));得到的是文件上一层目录名

 dirname(__FILE__);得到的是文件所在层目录名


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值