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


 

簡言之,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的區別

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM