> 백엔드 개발 > PHP 튜토리얼 > PHP中 include,include_once,require,require_once的比较

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-23 13:55:32
원래의
985명이 탐색했습니다.

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

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿