2013-11-02 165 views
5

requireinclude具有變體require_onceinclude_once。它們阻止腳本多次加載文件。爲什麼要包含/需要多次?

我想我可以放心地假設,因爲功能的存在,會有情況下,你將需要require/include函數代替require_once/include_once之一。但我無法想象這樣的情況。那會是什麼?

+0

我用'require' [在模板引擎(https://github.com/halfer/TemplateSystem/blob/master/ControllerBase.php#L52)包括一個HTML片段按需要多次。碰巧,我在回購上的最後一個錯誤是我錯誤地使用'require_once',因此被多次使用的碎片被忽略! – halfer

回答

7

可能是給出輸出的最好例子。例如,如果您有一段HTML可能會在不同頁面上出現一次以上,則可以將其放入一個單獨的文件並將其包含多次。

而且,通常沒有必要使用require_onceinclude_once。如果文件只被調用一次(例如在__autoload),那麼簡單函數的開銷就會小一些,因爲PHP不需要跟蹤文件是否已經被包含在內。

+0

所以,如果我理解正確的'require_once'和'include_once'是否有馬虎腳本來清理它們的混亂? – Joren

+1

@Joren在某種程度上,他們屬於PHP的過去時代,是的,我會這麼說。 – lonesomeday

+0

可愛的,PHP的心理-1和你的+1。 – Joren

1

如果你想只定義一次變量或常量,你可能想要使用require_once而不是require。這對於在一個可以快速管理依賴關係的非常龐大的代碼庫中創建可重用的類很有幫助。假設我有一個需要文件B的文件A,但是我已經包含了包含文件B的文件C.由於文件B已經包含在內,程序不必再次評估該代碼以正確評估文件A.這是一種情況您可能只想將文件包含一次。

它有助於管理您的依賴

相關問題