Heim >php教程 >php手册 >PHP中文件包含语句的区别

PHP中文件包含语句的区别

WBOY
WBOYOriginal
2016-06-21 08:52:302189Durchsuche

  PHP中有四个包含文件的函数:include(), include_once(), require()和require_once()。弄清楚他们的区别是学习PHP的基础之一,可以避免不少写代码过程中产生的不必要的麻烦。

  include()

  1. 调用方式:include(“/path/to/filename”)

  2. 说明: include()语句将在它被调用的地方包含参数所指定的文件,其效果和将某个文件的内容复制在include()出现的地方一样。使用include()时,括号可以忽略,如:include “/path/to/filename”。

  3. 陷阱:通过if…else…条件语句来判断是否include某个文件时有一个怪现象。如

  

  if(expression)

  include("/path/to/filename");

  else

  include("/path/to/anotherfilename");

  ?>

  上面这段代码运行时可能出错。为什么呢?include()函数只是将文件内容复制到出现该include()函数的地方,如果文件中包含多行php语句而没有使用{}组成代码快呢?那整个if…else…的逻辑就乱了。所以,这段代码应该这样写:

  

  if(expression){

  include("/path/to/filename");

  }

  else{

  include("/path/to/anotherfilename");

  }

  ?>

  这样就可以确保所包含进来的文件在整个代码快中。

  include_once()

  1. 调用方式:include_once(“filename”)

  2. 说明:顾名思义,只包含一次该文件。即,如果上下文中已经包含过了该文件,那么就不再包含。

  3. 陷阱:拥有和include()函数一样陷阱。

  require()

  1. 调用方式:require(“filename”)

  2. 说明:除了以下两点之外,功能跟include()一样:(1)无论require()出现在程序片段的什么位置,它都能将文件包含进来。考虑如下程序:

  

  if(false){

  require("/path/to/filename");

  }

  else{

  require("/path/to/anotherfilename");

  }

  ?>

  上面语句将filename和anotherfilename两个文件都包含进来,即使第一个条件测试的条件为false。(2)require()出错时(如所require的文件不存在错误),php脚本程序将停止执行,但include()不会出现这种情况。

  3. 陷阱:拥有和include()一样的陷阱。

  require_once()

  1. 调用方式:require_once(“filename”)

  2. 说明:除了只包含一次某文件之外,其它功能和require()一样。

  3. 陷阱:拥有和require()一样的陷阱。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn