话不多说,直接上干货:

区别一:

  1. include()遇到包含文件不存在,或是出错的时候,不停止运行,并报错。
  2. require() 遇到包含文件不存在,或是出错的时候,就停止运行,并报错。

举例:

1
2
3
4
5
<?php
include('hello.php');
echo 'include test final!';
require('hello.php');
echo 'require test final!';

结果:

PHP包含文件函数include、includeonce示意图

区别二:(查资料有这样的描述,但是测试未成功,故可以忽略)

  1. require() 无论如何都会包含文件。

  2. include() 可以有选择地包含。

测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- B.php -->
<?php
echo "我是B";
<!-- C.php -->
<?php
echo "我是C";
<!-- A.php -->
<?php
header("content-type:text/html;charset = utf8");
if (false) {
require('B.php');
}
if (false) {
include('C.php');
}
?>

结果:

PHP包含文件函数include、includeonce示意图 2

测试:

1
2
3
4
5
6
7
8
9
<?php
header("content-type:text/html;charset = utf8");
if (true) {
require('B.php');
}
if (true) {
include('C.php');
}
?>

结果:

PHP包含文件函数include、includeonce示意图 3

区别三:

include_once() 和require_once()语句均在脚本执行期间包含并运行指定文件。此行为分别与include() require() 语句类似,

唯一区别是include_once() 和require_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。

include_once() 和require_once() 应该用于嵌套包含的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

注意:随着网站越来越大,可能会出现重复包含某些文件。这也许不是问题,但又是修改了所包含文件的变量后,却由于后面再次包含原来的文件而被覆盖,可能不希望出现这种情况。还可能出现另一个问题,即所包含文件中函数名的冲突。使用include_once() 和require_once()就可以解决这些问题。

区别四:

include_once(),require_once(),与include(),require()比较,效率要低一些,因为他们至少得先判断一下这个文件是否已包含。


本文早期发布于个人 CSDN 博客:查看原文

站内搜索

没有找到内容!