PHP开发基础教程之文件包含

一、文件包含概述

在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有require、require_once、include、include- once四种方法包含一个文件。

我们来对比他们的不同:

33.png


注:
1,少用_once带once,因为它会消耗更多的资源去做检测的工作。

二、四种方法功能介绍

注:建议同学们将代码复制到本地进行测试

创建一个1.php文件,里面写上两个函数:

<?php
//functions.php文件
function demo(){
    echo 'aaaa';
}
function test(){
    echo 'cccdddd';
}
?>

在上述php文件的同级目录下,我再创建一个2.php文件把1.php文件包含进来。这样我的函数就可以专门放在1.php里面,哪儿需要用到这些函数的时候,我就从哪儿包含进来:

<?php

include '1.php';
//可以直接调用
demo();
test();
?>

我通过过上例我们知道了include的功能。接下来我们对比include和require:

代码中,我们先用include 来包含不存在的test.php文件,

<?php

include '1.php';
include 'test.php';
//可以直接调用
demo();
test();
?>

在本地的输出结果:

 34.png

再用require包含 不存在的test.php文件:

 35.png

通过上例的对比我们发现:

  •  如果test.php文件不存在include 会发出警告继续执行demo()和test()函数。

  •   而requre则直接报错,demo()和test()函数无法继续执行。

我们通过表格知道了:inlcude 和include_once的区别在于,检测是否重复包含。如果重复包含了include_once不会再包含 对应的文件了,而include 则不管这些。有没引入过文件,都再引入一次。

同样刚刚的2.php我们再实验一下,我们将functions.php包含两次,分别使用include和include_once:

<?php

include '1.php';
include '1.php';
//可以直接调用
demo();
test();
?>

结果:

36.png

改为include_once再试一次:

<?php

include_once '1.php';
include_once '1.php';
//可以直接调用
demo();
test();
?>

输出:

 37.png

上图中的提示是说,不能重新定义函数demo()。

我们在函数定义章节讲过,函数不能定义两次,否则会报错。因为我们将 3_1.php包含了两次所以执行了两次,因此报这个错误。

而include_once不报错的原因是因为:他检测了functions.php曾经包含过,不再进行包含引入了。

而require和require_once的功能,大家用你最最聪明的小脑袋是不是就能推理出来了呢?require_once有两个特点:

1.包含 的文件必须存在,否则停止执行

2.会做重复包含检查哟

学习新得:

  • Include与require的区别,include遇到错误警告,但是继续执行。Require遇到错误之后报警,不会再向下执行

  •  inlcude 和include_once的区别在于,检测是否重复包含。如果重复包含了include_once不会再包含 对应的文件了,而include 则不管这些。

 


继续学习
||
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
提交重置代码