require和include最根本的区别,其实就在错误处理的方式不一样
include,当引入的文件不存在时,会显示一个警告错误,但是不影响其他代码的执行。
require,当引入的文件不存在时,会产生一个致命错误,并且程序中断执行了。
实例分析
以下附上我的目录文件结构,就以下这两个文件
include使用
在test文件中写如下代码
<?php
include 'code.php';
echo 'hello';
?>
运行 http://localhost/test/test.php
如下正常输出
如果写了以下代码的话
<?php
include 'code1.php';
echo 'hello';
?>
运行时如下所示,会产生一个警告,但不会影响代码的执行
require使用
如果写入如下代码时:
<?php
require 'code.php';
echo 'hello';
?>
运行如下图所示,正常输出
如果写人以下代码时
<?php
require 'code1.php';
echo 'hello';
?>
运行时如下图所示,会产生一个fatal error 错误,php执行结束,不再执行
include_once使用
include_once和include用法基本相同,唯一不同的是,使用include_once会提前检查导入的档案是不是已经在程序中的其他地方导入过了,导入过的话,就不再导入。这个可以避免重复定义相同函数名的错误,require_once类似 include_once
如下图所示
code.php文件
<?php
function ge(){
echo "11";
}
?>
test.php文件
<?php
include 'code.php';
include 'code.php';
echo "hello";
?>
运行 http://localhost/test/test.php
会报错,因为重复导入文件,导致 有了两个相同的函数 ge(),故产生错误
当把include 换成 include_oncde 的时候
<?php
include 'code.php';
include_once 'code.php';
echo "hello";
?>
运行看看,正常输出
以上就是我对 include、require、include_once、require_once 的总结,如有错误,还望指正。