2010-03-23 119 views
0

我應該在以下聲明中使用什麼?包括或必需。包括或需要

if(a ==b){ 
require 'requiredfile.php'; 
} else { 
require 'requiredfile_2.php' 
} 

如果在一個功能,我知道那一個,包含或要求,只包括文件調用的時候,另外一個將包括文件,而不管。我對麼?

回答

8

includerequire之間的區別在於include文件沒有找到時只會發出警告,並且require會以致命錯誤終止。

如果您正在加載重要的程序部件,您可能需要使用require

Manual

要求()是相同的包括()除在失敗時它也將產生致命的E_ERROR電平誤差。換句話說,它會停止腳本,而include()只發出一個警告(E_WARNING),允許腳本繼續。

+1

只是想補充一點,如果你只想要一次包含文件,就像它包含函數或類定義一樣,你可能會想要使用'include_once'或'require_once'。這確保即使文件被告知包含10次,它也只包含一次,擺脫「已經聲明的函數」錯誤。 – Tarka 2010-03-23 17:05:24

+0

-1票。如果include/require失敗,那麼您應該在代碼中優雅地處理事件。 還有條件地包括代碼/內容是凌亂的。盡一切辦法使用自動加載器 - 但包含的文件不應包含內聯代碼/內容 - 它應該只在包含它的代碼特別要求執行時纔會生成輸出/重要狀態更改。 – symcbean 2010-03-23 17:35:32

+0

是的,但我的理解是,如果包含或需要,不記得哪一個,如果是函數內部,它將在頁面被調用時加載數據,而另一個將等待加載數據直到函數叫做。這就是我想要得到的,這兩個中的哪一個是調用該函數後加載數據的那個? – 2010-03-23 17:37:50