PHP中include與require的用法區別

來源:互聯網
上載者:User
在PHP變成中,include()與require()的功能相同,include(include_once) 與 require(require_once)都是把把包含的檔案代碼讀入到指定位置來,但是二者再用法上有區別:(include()是有條件包含函數,而require()則是無條件包含函數) 1, 使用方式不同 (1) require 的使用方法如 require("requireFile.php"); 。這個函式通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 PHP 程式網頁的一部份。常用的函式,亦可以這個方法將它引入網頁中。引入是無條件的,發生在程式執行前,不管條件是否成立都要匯入(可能不執行)。(2) include 使用方法如 include("includeFile.php"); 。這個函式一般是放在流程式控制制的處理區段中。PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。引入是有條件的,發生在程式執行時,只有條件成立時才匯入(可以簡化編譯產生的程式碼)。   例如在下面的一個例子中,如果變數$somgthing為真,則將包含檔案somefile:if($something){include("somefile");}但不管$something取何值,下面的代碼將把檔案somefile包含進檔案裡:if($something){require("somefile");}下面的這個有趣的例子充分說明了這兩個函數之間的不同。$i = 1;while ($i < 3) {require("somefile.$i");$i++;}在這段代碼中,每一次迴圈的時候,程式都將把同一個檔案包含進去。很顯然這不是程式員的初衷,從代碼中我們可以看出這段代碼希望在每次迴圈時,將不同的檔案包含進來。如果要完成這個功能,必須求助函數include():$i = 1;while ($i < 3) {include("somefile.$i");$i++;}2. 執行時報錯方式不同 include和require的區別:include引入檔案的時候,如果碰到錯誤,會給出提示,並繼續運行下邊的代碼,require引入檔案的時候,如果碰到錯誤,會給出提示,並停止運行下邊的代碼。例如下面例子:  寫兩個php檔案,名字為test1.php  和test2.php,注意相同的目錄中,不要存在一個名字是test3.php的檔案。test1.php<?PHPinclude  (”test3.php”);echo  “abc”;?> test2.php<?PHPrequire (”test3.php”)echo  “abc”;?> 瀏覽第一個檔案,因為沒有找到test999.php檔案,我們看到了報錯資訊,同時,報錯資訊的下邊顯示了abc,你看到的可能是類似下邊的情況:Warning: include(test3.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2 Warning: include() [function.include]: Failed opening ‘test3.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2abc (下面的被執行了) 瀏覽第二個檔案,因為沒有找到test3.php檔案,我們看到了報錯資訊,但是,報錯資訊的下邊沒有顯示abc,你看到的可能是類似下邊的情況:Warning: require(test3.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test2.php on line 2 Fatal error: require() [function.require]: Failed opening required ‘test3.php’ (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2 下面的未被執行,直接結束總之,include時執行時調用的,是一個過程行為,有條件的,而require是一個預置行為,無條件的。 

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。