PHP:檔案載入
PHP檔案載入綜述:
有4個檔案載入的文法形式(注意,不是函數):include , include_once , require , require_once;
它們的本質是一樣的,都是用於載入(引入/包含/載入)一個外部檔案到當前php代碼中來。
它們只在2個方面有細微區別:
1:如果負載檔案失敗,則有不同的處理規則。include 與 require不同
2:如果載入重複,則有不同的處理規則。XXX 與 XXX_once 不同
3:它們都是文法結構,而非函數,使用形式可以有兩種:
include '檔案路徑';
include('檔案路徑');
檔案路徑:
不管是哪個載入文法結構,都涉及到檔案路徑問題。主要有3種情況:
1:相對路徑
就是以“./”,或“../”,開頭的路徑
./ 表示當前網頁檔案的所在位置(檔案夾/目錄);
../ 表示當前網頁檔案的所在位置的上一級位置(檔案夾/目錄);
這種相對位置對一個網站中的所有內容(包括php,html,圖片,css,js檔案)都有效
2:絕對路徑
有兩種絕對路徑:
本地絕對路徑:
window系統:c:/d1/d2/index.php
unix系統: /d1/d2/index.php
網路絕對路徑:http://www.abc.com/d1/d2/index.php
3:只有檔案名稱(無路徑,只給出檔案名稱,不推薦)
在php的include文法(其它3個也一樣)中,如果只給出檔案名稱,而沒有給出路徑,則此時有其內部找到該檔案的規則,如下:
首先在系統設定的include目錄中尋找
在php.ini設定檔中,有:include_path設定
可見預設無設定;該設定其實可以設定多個目錄,其間用分號分開;系統會按順序依次尋找
沒找到,則在網頁檔案所在目錄下找(當前工作目錄)
沒找到,則在當前include命令所在檔案的目錄下找
檔案載入過程:
從include語句處退出php指令碼模式(進入html代碼模式)
載入include語句所設定的檔案中的代碼,並執行之(如同在當前檔案中一樣)
退出html模式重新進入php指令碼模式,繼續之後的代碼
幾個區別:
include_once and include的區別:前者能保證不會被重複載入
require and include 的區別:如果被包含檔案不存在,即引用失敗(出錯)時,include警告並繼續執行後面的代碼,require會直接終止
require_once and require 的區別:前者能保證不會被重複載入
return 關鍵字:
以前,我們只在函數中出現return關鍵字,其作用是,結束函數,並可以返回資料;
return; //單純結束;
return $x; //結束,並返回資料$x;
那麼,被包含(載入)的檔案中的return也具有同樣的作用!
預設情況下include載入成功返回1,載入失敗返回false
但被包含的檔案中可以使用return語句返回資料值並終止該檔案的後續部分的執行
return返回的資料如同函數傳回值一樣可以進一步處理(比如賦值給其它變數)