当前位置:Gxlcms > PHP教程 > PHP中include,include_once,require,require_once的比较

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

时间:2021-07-01 10:21:17 帮助过:21人阅读

【学习目的】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__);得到的是文件所在层目录名

    人气教程排行