简言之,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的区别
来源:https://www.cnblogs.com/html55/p/10799118.html