首先说明下require和include的使用方法,两者的使用方法大致相同,都是括号中两个单引号包含一个php文件名即可,比如require ('123.php')和include ('123.php')。 两者在php旧版本的代码中处理的顺序则不同,require被称为无条件包含函数,include被称为有条件包含函数,即旧版本先把require引入的文件读入php代码中,然后再执行,而include却是在执行到当前代码时再将文件引入,也就是说旧版本中require不受逻辑判断的影响,但是include会。但是在php5中,两者都属于有条件包含函数。做个小测试:
<?php
echo "require引入成功!";//test1.php
?>
<?php
echo "include引入成功!";//test2.php
?>
<?php
$i=1;
if($i>2)
{<pre name="code" class="php"> include 'test2.php';
require 'test1.php';
}?> 测试结果:两者都不输出。有兴趣的可以自己试一试。我使用的版本是PHP5。
所以现今版本中两者唯一不同的一点就是require引入的文件存在错误的话,会马上中断执行,并报出一个致命错误,include引入的文件存在错误的话,程序不会终止执行,而是会继续执行,并报出一个警告错误。require_once和include_once则都是检查要导入的文件之前是否导入过,如果导入过,那就不重复导入。还有比较重要的一点就是,在项目中,require和include使用包含文件的路径最好使用绝对路径,而不要使用相对路径,使用绝对路径的效率远远高于相对路径,特别是在大型项目中。