PHP是服務(wù)器端的腳本語言,是網(wǎng)站后端開發(fā)中的常用技術(shù)之一。在大型的Web應(yīng)用程序開發(fā)中,為了代碼的可維護(hù)性和可擴(kuò)展性,常常采用模塊化編程的方式。而PHP中用于模塊化編程的一種常用技術(shù)是include和require函數(shù)。在本篇文章中,我們將介紹另一種包含文件的方式——PHP Include。
在PHP中,包含文件有兩種方式,分別是include和require。其中,include是在程序執(zhí)行該語句時(shí),將指定的文件插入到程序中,并且如果失敗,將會(huì)產(chǎn)生警告信息,但不會(huì)停止程序的執(zhí)行;而require則是在程序執(zhí)行該語句時(shí),將指定的文件插入到程序中,如果失敗,則會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤,程序停止執(zhí)行。關(guān)于這兩個(gè)函數(shù)的更多細(xì)節(jié),可以參考相關(guān)文檔。
然而,除了以上兩種包含文件的方式,PHP中還有另一種文件包含的技術(shù)——PHP Include。PHP Include是一種更高級(jí)的文件包含方式,是在PHP5.2及以上版本中新增的,其優(yōu)點(diǎn)在于:可以避免重復(fù)執(zhí)行相同的代碼,提高代碼復(fù)用性,減小服務(wù)器的開銷(因?yàn)闊o需大量?jī)?nèi)存來存儲(chǔ)重復(fù)的代碼)。下面我們就來看一下這種新的文件包含方式。
在PHP Include中,我們需要先創(chuàng)建一個(gè).inc文件(用于包含的文件),然后使用include_once進(jìn)行包含。需要注意的是,文件名的后綴用.inc代替.php,這是因?yàn)檫@個(gè)后綴名不會(huì)被Web服務(wù)器解釋為PHP腳本,而是直接返回文件內(nèi)容。
下面是一個(gè)簡(jiǎn)單的例子,我們創(chuàng)建一個(gè).inc文件,命名為config.inc,里面定義了一個(gè)變量$database,內(nèi)容如下:
$database = array( 'host' =>'localhost', 'username' =>'root', 'password' =>'', 'database' =>'test' );接下來,在需要使用這個(gè)變量的文件中,我們使用include_once來包含這個(gè).inc文件:
include_once 'config.inc'; echo $database['host'];上面這段代碼會(huì)輸出localhost,因?yàn)槲覀兛梢栽诒疚募兄苯釉L問到config.inc中定義的變量$database。 除了上述例子中展示的變量之外,我們還可以在.inc文件中定義函數(shù)、類等,這些都可以在包含文件的文件中使用。 需要注意的是,如果你使用了include_once語句,PHP就會(huì)檢查是否已經(jīng)包含了這個(gè)文件,如果已經(jīng)包含,則不會(huì)再進(jìn)行后續(xù)的操作。而如果使用了include語句,則每一次調(diào)用都會(huì)進(jìn)行文件包含操作,這可能會(huì)導(dǎo)致重復(fù)的代碼執(zhí)行。因此,建議使用include_once語句。 除此之外,PHP Include也支持另一個(gè)函數(shù)——include_path,它可以設(shè)置PHP腳本文件的搜索路徑,是一個(gè)用冒號(hào)(或分號(hào))分隔的路徑列表。如果您希望腳本可以在不同的目錄下找到.inc文件,可以通過設(shè)置這個(gè)參數(shù),讓PHP自動(dòng)搜索這些文件。 在這里再給出一個(gè)例子,我們假設(shè)在項(xiàng)目的多個(gè)文件目錄中都存在相同的.inc文件,則可以使用include_path來指定需要搜索的目錄,如下:
ini_set('include_path', ini_get('include_path') . ':/home/user/otherfolder'); require_once 'config.inc';上面這段代碼中,我們使用了ini_set函數(shù)來設(shè)置include_path,并將其加上了/home/user/otherfolder的路徑,然后使用require_once來包含config.inc文件。由于這時(shí),PHP會(huì)按照include_path中指定的路徑去搜索config.inc文件,因此即使這個(gè)文件沒有和調(diào)用文件在同一個(gè)目錄中,也能被正確地包含進(jìn)來。 總的來說,PHP Include是一種很實(shí)用的文件包含方式,可以提高代碼復(fù)用性和可維護(hù)性。在使用時(shí),一定要注意語法的正確性和代碼的安全性,避免出現(xiàn)重復(fù)包含、文件權(quán)限問題等問題。