推薦學習:《》
在一個PHP指令碼中,去將另外一個檔案(PHP)包含進來,去合作完成一件事情。
- 要麼使用被包含檔案中的內容,實現程式碼的共用(重用):向上包含(索要)向上包含:在當前指令碼要用某個程式碼之前包含別的檔案
- 要麼自己有東西可以給別的檔案使用,實現程式碼的共用(重用):向下包含(給予)向下包含:在自己有某個東西的時候,需要別的指令碼來顯示(自己程式碼寫完之後包含其他檔案)
最大的作用:分工共同作業,每個指令碼做的事情不一樣,因此可以使用共同作業方式,讓多個指令碼共同完成一件事情。
- Include:包含檔案
- Include_once:系統會自動判斷檔案包含過程中,是否已經包含過(一個檔案最多被包含一次)
- Require:與include相同
- Require_once:以include_once相同
被包含檔案程式碼
<h3>檔案包含——被包含檔案</h3> <?php header("Content-type:text/html;charset=gbk"); $a = 2;$b = 4; define("xiaofeng",'cool');
包含檔案程式碼
<h3>檔案包含——包含檔案</h3> <?php header("Content-type:text/html;charset=gbk"); include "56.php";//包含檔案56.php echo $a,"<hr>",$b,"<hr>",xiaofeng;
被包含檔案程式碼
<h3>檔案包含——被包含檔案</h3> <?php header("Content-type:text/html;charset=gbk"); echo $a,"<hr>",$b,"<hr>",xiaofeng;//輸出資料
包含檔案程式碼
<h3>檔案包含——包含檔案</h3> <?php header("Content-type:text/html;charset=gbk"); $a = 2;$b = 4; define("xiaofeng",'cool');//定義資料 include_once '59.php';//包含資料為了顯示以上的內容
- 讀取程式碼檔案(PHP程式)
- 編譯:將PHP程式碼轉換成位元組碼(生成opcode)
- zendengine來解析opcode,按照位元組碼去進行邏輯運算
- 轉換成對應的HTML程式碼
- 在檔案載入(include或者require)的時候,系統會自動的將被包含檔案中的程式碼相當於嵌入到當前檔案中
- 載入位置:在哪載入,對應的檔案中的程式碼嵌入的位置就是對應的include位置
- 在PHP中被包含的檔案是單獨進行編譯的
注意:PHP檔案在編譯的過程中如果出現了語法錯誤,那麼會失敗(不會執行);但是如果被包含檔案有錯誤的時候,系統會在執行到包含include這條語句的時候才會報錯。
檔案在載入的時候需要指定檔案路徑才能保證PHP正確的找到對應的檔案。
- Windows:碟符C:/路徑/PHP檔案
- Linux:/路徑/PHP檔案
- 從網站根目錄開始(網路絕對路徑)
- /:相對於網站主機名字對應的路徑
- Localhost/index.php -> E:/server/apache/htdocs/index.php
- ./:表示當前資料夾
- ../:上級目錄(當前資料夾的上一層資料夾)
1、 絕對路徑相對效率偏低,但是相對安全(路徑不會出問題)
2、 相對路徑相對效率高些,但是容易出錯(相對路徑會發生改變)
一個檔案包含另外一個檔案,同時被包含的檔案又包含了另外一個檔案。巢狀包含的時候就很容易出現相對路徑出錯的問題:相對路徑會因為檔案的包含而改變(./和../):windows下面,每一個資料夾下都有.和..的資料夾。
- Include系統會碰到一次,執行一次;如果對統一個檔案進行多次載入,那麼系統會執行多次;
- Include_once:系統碰到多次,也只會執行一次。
本質都是包含檔案,唯一的區別在於包含不到檔案的時候,報錯的形式不一樣
- Include的錯誤級別比較輕:不會阻止程式碼執行
- Require要求較高:如果包含出錯程式碼不再執行(require後面的程式碼)
推薦學習:《》
以上就是詳細解析PHP檔案包含的詳細內容,更多請關注TW511.COM其它相關文章!