- 机制不同
- Require语句在进行文件包含时,不管这条require语句是否被运行,都会将被包含代码中的文件包含进来。
- Include语句在进行文件包含时,如果这条include语句没有被运行,则不会将被包含代码中的文件包含进来。
如以下代码:
<?php
$a = 1;
if($a ==2) //如果等于2,则调用
require(“include.inc”);
?>
这个例子中条件没有满足,所以调用语句没有执行,但是include.inc仍然被包含进来,只是没有被调用。
<?php
$a = 1;
if($a ==2)
include(“include.inc”);
?>
这个PHP代码中,程序没有把include.inc中代码包含进来。
- PHP中文件不存在时的错误处理方式不同
如果文件无法找到,require和include的错误提示是不同的。
Require语句会抛出一个致命错误并中止脚本的运行。如:
<?php
require(“inc1.inc”); //inc1inc不存在
echo “This is a test!”;
?>
运行结果如下:
Warning: require(inc1.inc) [function.require]: failed to open stream: No such file or directory in E:/xampp/xampp/htdocs/2.2.test6.php on line 2
Fatal error: require() [function.require]: Failed opening required ‘inc1.inc’ (include_path=’.;E:/xampp/xampp/php/pear/’) in E:/xampp/xampp/htdocs/2.2.test6.php on line 2
分析:可以看到,错误类型为Fatal error,并且代码在require处中止了。
Include语句则会抛出警告信息,如:
<?php
include(“inc1.inc”);
echo “This is a test!”;
?>
结果如下:
Warning: include(inc1.inc) [function.include]: failed to open stream: No such file or directory in E:/xampp/xampp/htdocs/2.2.test7.php on line 2
Warning: include() [function.include]: Failed opening ‘inc1.inc’ for inclusion (include_path=’.;E:/xampp/xampp/php/pear/’) in E:/xampp/xampp/htdocs/2.2.test7.php on line 2 This is a test!
分析:错误类型为Warning,并且代码仍然运行了。
Include_once语句与require_once语句一样,具体请参考require_once语句。