首頁 >後端開發 >php教程 >詳細解析PHP檔案包含

詳細解析PHP檔案包含

WBOY
WBOY轉載
2022-04-18 17:57:527418瀏覽

本篇文章為大家帶來了關於PHP的相關知識,其中主要介紹了關於文件包含的相關問題,包括了文件包含的概念、作用,文件包含的四種形式,以及文件載入原理的相關內容,下面一起來看一下,希望對大家有幫助。

詳細解析PHP檔案包含

推薦學習:《PHP影片教學

一、檔案包含的概念

        在一個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",&#39;cool&#39;);//定义数据
	include_once &#39;59.php&#39;;//包含数据为了显示以上的内容


四、檔案載入原理

(一)PHP程式碼的執行流程

  1. 讀取程式碼檔案(PHP程式)
  2. 編譯:將PHP程式碼轉換成字節碼(產生opcode)
  3. zendengine來解析opcode,依照字節碼去進行邏輯運算
  4. #轉換成對應的HTML程式碼

#(二)檔案載入原理

  • #在檔案載入(include或require)的時候,系統會自動的將被包含檔案中的程式碼相當於嵌入到目前檔案中
  • #載入位置:在哪加載,對應的檔案中的程式碼嵌入的位置就是對應的include位置
  • 在PHP中被包含的檔案是單獨進行編譯的

##注意:PHP檔案在編譯的過程中如果出現了語法錯誤,那麼會失敗(不會執行);但是如果被包含檔案有錯誤的時候,系統會在執行到包含include這條語句的時候才會報錯。

(三)檔案載入路徑

        

已載入的時候檔案需要指定檔案路徑才能確保PHP正確的找到對應的檔案。

1.絕對路徑:從磁碟的根目錄開始(本機絕對路徑)

    #Windows:磁碟區C:/路徑/PHP檔案
  • Linux:/路徑/PHP檔案
  • 從網站根目錄開始(網路絕對路徑)
  • /:相對於網站主機名稱對應的路徑
  • Localhost/index.php -> E:/server/apache/htdocs/index.php
  • 2 .相對路徑:從目前檔案所在目錄開始的路徑

    • ./:表示目前資料夾
    • . ./:上級目錄(目前資料夾的上一層資料夾)

    #3.絕對路徑與相對路徑的載入差異

    #1、  絕對路徑相對效率較低,但相對安全(路徑不會出問題)

    2 、  相對路徑相對效率高些,但是容易出錯(相對路徑會改變)


    #五、檔案巢狀包含

           

     另一個檔案包含另一個文件,同時已包含的檔案又包含了另一個檔案。巢狀包含的時候就很容易出現相對路徑出錯的問題:相對路徑會因為文件的包含而改變(./和../):windows下面,每一個資料夾下都有.和..的資料夾。 #


    六、Include與require差異

    (一)Include與include_once的差別:

    • Include系統會碰到一次,執行一次;如果對統一個檔案進行多次加載,那麼系統會執行多次;
    • Include_once:系統碰到多次,只會執行一次。

    (二)Require和include的差異

    ##本質都是包含文件,唯一的差別在於包含不到文件的時候,報錯的形式不一樣

    • #Include的錯誤等級比較輕:不會阻止程式碼執行
    • Require要求較高:如果包含出錯程式碼不再執行(require後面的程式碼)
    推薦學習:《

    PHP影片教學
    #

    以上是詳細解析PHP檔案包含的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除