php 文件包含 include、include_once、require、require_once

佐手、 提交于 2019-12-17 12:31:17

 

简言之,include某文件:把某文件的代码粘过来,如果该文件不存在,也继续执行下面的代码,带_once的是看看之前引用过没,引用过就不引用了(_once这行代码的心里活动:“之后引用过没有我不关心,我只看我之前引用过没”)。require和include的区别仅仅在报错的处理上,require某文件时,文件不存在则报错

 

include、include_once、require、require_once

include某文件:把某文件的代码粘过来,替换掉include某文件这个语句,如果该文件不存在,也继续执行下面的代码

require某文件:和include不同的地方是,如果文件不存在,报错

带_once的是,朝前看,如果之前引入过该文件,那么就不引入了!带_once的效率低点。

详情如下:

---------------------------------------

include某文件,就等于把该文件中代码粘贴过来,替换掉include这句话

这样一来,看看多次include一个文件会是什么效果

a1.php代码改为如下;

<?php
//我是a1.php
$a1++;
?>

index.php 代码如下:

1 <?php
2     ini_set("error_reporting","E_ALL & ~E_NOTICE");
3     header("Content-type:text/html;charset=UTF-8");
4     $a1= 1;
5     include('a1.php');
6     echo $a1;
7 ?>

引入一次include(上面第5行代码),$a1变为2,修改上面的代码,再加上两次include,变成如下:

如果include改为include_once呢?

include_once就是看前面的代码中(注意:不会朝后看),该文件有没有被include过或include_once过,有,那就不引入过来了,没有,那就引入过来。而include就是,甭管那么多,引过来!

所以,include效率高点!

 1 <?php
 2     ini_set("error_reporting","E_ALL & ~E_NOTICE");
 3     header("Content-type:text/html;charset=UTF-8");
 4     $a1= 1;
 5     echo $a1; //1
 6     include('a1.php'); //引过来所以$a1+1
 7     echo $a1; //2
 8     include_once('a1.php'); //发现前面执行了include a1.php这个文件,不引入了。所以$a1还是2
 9     echo $a1; //2
10     include('a1.php');//继续引过来,所以$a1+1为3
11     echo $a1;//3
12 ?>

再比如,include_once不是朝后看

 1 <?php
 2     ini_set("error_reporting","E_ALL & ~E_NOTICE");
 3     header("Content-type:text/html;charset=UTF-8");
 4     $a1= 1;
 5     echo $a1; //1
 6     include_once('a1.php');
 7     //朝前看,没有include或include_once过a1.php,所以,引过来 $a1变为2
 8     echo $a1; //2
 9     include('a1.php');//继续引过来,所以$a1+1为3
10     echo $a1;//3
11 ?>

 

include和require的区别

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!