市面上很多php教材對檔案包含的內容講得都很簡單,根本就沒講清楚。現將自己遇到的問題整理如下。檔案包含是模組化開發的重要方式。php中檔案包含是通過四個函式實現的:include,require,include_once,require_once。
(1)檔案包含的原理就是將被包含檔案的**複製到引用處。
(2)檔案包含可以是本地檔案也可以是遠端檔案,但兩者根本不是一回事,通常我們說的都是本地檔案包含。本地檔案包含輸入的是乙個路徑資訊,遠端檔案包含傳入的是乙個url。
(3)本地檔案包含,要搞清楚是如何尋找被包含檔案的,這個問題很重要。
a.當傳入的是相對路徑或者絕對路徑時,如./a.php,../a.php,c:/www/a.php,會直接根據這個路徑去尋找被包含檔案。
b.當傳入的只是乙個檔名時,如a.php,b.php,首先會去include_path(php配置檔案中可設定)所指定的路徑下尋找被包含檔案,如果找到了就停止;如果沒有找到,會到當前檔案所在目錄下繼續尋找。
(4)作用域
當乙個檔案被包含時,其中所包含的**繼承了 include 所在行的變數範圍。從該處開始,呼叫檔案在該行處可用的任何變數在被呼叫的檔案中也都可用。不過所有在包含檔案中定義的函式和類都具有全域性作用域。
(5)include與require的區別
它們的區別僅僅在於對出錯的處理方式不同,當檔案包含出錯時,include會產生警告,程式會繼續執行;require會報告錯誤,程式終止執行。
(6)include與include_once的區別
當出現多重引用時,一定要注意。例如a.php包含了b.php、c.php,b.php包含了c.php,這時如果在a.php中使用include來包含b.php、c.php,就會報重複定義的錯誤,而應該使用include_once來包含檔案。include_once,同一檔案只包含一次,如果某檔案被包含過了,就不再被包含了。
還有不清楚地方請移步:
PHP 包含檔案
include include once require require once include 和 require 除了處理錯誤的方式不同之外,在其他方面都是相同的 require如果引入的檔案不存在,生成乙個致命錯誤,在錯誤發生後指令碼會停止執行。include如果引入的檔案不存在,生成乙個警...
php檔案包含
小型 網頁也都得有數十個,因此關頁面的 量會很大,為了節省頻寬等諸多優化問題,要盡量實現頁面的復用 include,include once,require,require once 乙個模組可能有10來個介面 header content type text html charset utf 8 ...
PHP檔案包含
今天突然發現這個東西有好多奇怪的東西,特別寫一下記一下 測試用的1.txt及phpinfo.php內容都是phpinfo 截斷 好多.和好多.截斷 這裡不測試了,摘自 審計一書,5.2可用,5.3修復 windows下240個 可截斷,同樣的 加 也是240個截斷,linux下2038個 才可截斷 ...