PHP文件引用

四种方式

  • require
  • include
  • require_once
  • include_once

require与include

使用方式

require 'myfile.php';
include 'myfile.php';

也可以使用调用函数的写法:

require('myfile.php');
include('myfile.php');

由于这四个语句在PHP中并不是函数,而是语句(statement),因此此处使用括号就如同

$var = (1+2);

这样一句代码一样,没有什么太大的意义,因此在写代码的时候,建议使用前一种,有助于区别一般函数。

区别

require与include除了产生的错误级别不同,其他方面几乎完全一样。(PHP手册)

使用require引用文件失败时,将会产生一个E_COMPILE_ERROR级别的错误,PHP脚本会中止运行,而使用include引用文件失败时,将产生一个E_WARNING级别的警告,PHP脚本仍然会继续运行。

一般来说,
如果一个文件是必须的,使用require。
如果一个文件不是必须的,使用include,如果不想输出警告,可以用@符号忽略警告。

require_once与include_once

与require有何区别

使用require_once时,在引用这个文件前,会检查之前是否有被引用过,如果有,将不再引用。
同样的include与include_once的区别也是这样。
和前面两者一样,require_once与include_once的区别也是错误级别不同。

何时使用_once

PHP中不允许重复定义相同的函数,如果被引用文件中定义了函数,重复引用会产生错误。此时如果担心重复引用,就可以使用_once。

总结

require与include、require_once与include_once的主要区别在于失败时产生的错误级别不同。

require与require_once、include与include_once的主要区别在于_once会在引用前检查是否引用,避免重复引用。

如果一个文件是必须的,使用require,如果担心产生重复引用错误,使用require_once。

如果一个文件不是必须的,使用include,如果担心产生重复引用错误,使用include_once。如果不想输出警告,可以用@符号忽略警告。