引入文件有4种方式,require、include、require_once/include_once**

require_once/include_once与require/include

Include_once:只引入一次文件,这个方法它在引入前会进行查询已加载文件列表的动作,因此会耗一定的性能,虽然在APC中部分问题已经被解决,但是还有一些小问题依然没有被完美解决,因此,不建议使用_once,(包括require_once,更详细的原因请自行google)

inculde与require

区别

require:

1.在引入一个不存在的文件时,会报fatal错误并且终止继续执行。
2.它会把自己本身代换成引入的文件内容。
3.它是一个语言结构。

include:

1.在引入一个不存在的文件时,会报警告并且继续执行。
2.它会引入文件并且执行文件里的内容。
3.它是一个常规的php函数。

1
2
3
4
5
6
7
8
9
10
11
12
if($condition){//根据$condition的真假来判断是否引入文件
include './somefile';
}
if($condition){//根据$condition的真假来判断是否引入文件
require './somefile';
}

for($i=1; $i<=3; $i++)
require $i.'.php';
//两者一样效果
for($i=1; $i<=3; $i++)
include $i.'.php';

两者的使用场景:

  • require通常使用方法,这个函数通常放在 PHP 程序的最前面,PHP 程序在启动执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序的一部份。也可以用这个方法将 常用的函数文件 引入到程序中。
  • include通常使用方法,这个函数一般是放在流程控制(如if else)的处理部分中。PHP 程序在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

** 注意,使用include/require不建议加括号,这样会拉低一点效率 **

共同点:

  • 解析程序都将退出php模式并在目标文件的开头进入HTML模 式。这意味着目标文件中的所1.有应该作为php脚本执行的代码都必须被包含在有效的php起始标记和终止标记中。
  • 引入文件时,使用绝对路径是最快的,而’./currentDir.php’又比’currentDir.php’快
  • 都可以用于控制结构中如for、if等。(亲测)