2011-04-27 132 views
1

可能重複:
When should I use require_once vs include?PHP包括問題

這PHP函數是更好地使用includeinclude_oncerequirerequire_once以及是否有任何其他的功能類似於這些功能?

每個功能的優缺點是什麼?

+0

的* _once功能似乎成爲懶惰的程序員或設計不佳的應用程序 – Galen 2011-04-27 02:01:53

回答

3

這取決於你需要做什麼。

您是否需要確保它僅包含一次?使用*_once構造。

如果文件不存在,你想要拋出一個錯誤嗎?使用require*構造。

請注意,這些是而不是功能,但language constructs

他們應該只有被用來包括其他PHP文件。要打開任何其他類型的文件,請使用其他內容(例如readfile())。

請注意,如果使用類和__autoload()spl_autoload_register()(首選),則不必包括該類,它將被包含在內。

+0

每個構造通常用於什麼? – showPHP 2011-04-27 01:45:51

+0

@showPHP它們通常不是全部用於一個項目中。作者選擇一個,並堅持下去。我個人會使用'include'。 – alex 2011-04-27 01:46:38

1

Include包含它在看到該指令時,不管它是否已經包含它。如果您將文檔包含在多個位置,這有時會導致衝突。

Include_once就是這麼做的,它確保它只包含一次文件。

需求就像包含一樣,雖然它也會確定這個條件,如果它找不到所需的文件,它會殺死你的應用程序。

需要一次就像include_once,除了也是ASSERTS這種情況,如果沒有找到該文件,將會終止你的應用。

0

由於函數名稱所暗示的:

  • include會簡單地嘗試包括 您 文件裏引用的文件。如果引用的文件 確實
  • include_once將包括文件 只有當它尚未被列入你的腳本或者您已被列入
  • require腳本 會引發錯誤並退出 腳本不存在,因此「要求」 執行。
  • require_once將按要求做同樣的事情 ,除非 文件尚未包含在 當前腳本或父腳本中。
0

總是使用*需要和require_once; *

塊引用

,因爲它顯示錯誤並停止腳本,那麼你可以找到錯誤