2010-10-15 69 views
4

您是否將所有include_oncerequire_once都定位在文件的開始位置,以便清楚它的依賴關係是什麼,或者將它們放在使用它們的最本地範圍,以提高效率?哪裏可以定位include/require語句?

比方說,我有其中有一個函數來顯示一個錯誤信息的錯誤處理文件 - 你會...

require_once('error_handling.php'); 
... lots of code ... 
if ($should_be_true === False) 
{ 
    ReportErrror(); // declared in error_handling.php 
} 

還是你

... lots of code ... 
if ($should_be_true === False) 
{ 
    require_once('error_handling.php'); 
    ReportErrror(); // declared in error_handling.php 
} 

嗯,看起來他們刪除在best-practise標籤,與subjective沿的'10

回答

2

這偉大的標籤清除可能的味道大部分的問題。在C/C++風格中,我總是把它們放在最前面,所以 - 正如你所提到的那樣 - 相關性立即清晰。此外,它給你選擇重新排列包含的順序(通常應該從不重要)。因爲這是一個運行時事務(與C/C++不同),所以推遲包含很少需要的大文件是有意義的。

這是一個平衡問題 - 清潔代碼(恕我直言)與性能。我會傾向於更乾淨的代碼,除非你有一個PHP文件被稱爲很多,b)使用一個巨大的PHP文件,幾乎不需要。

+0

我認爲我傾向於你的思維方式。 – Mawg 2010-10-15 02:41:39

2

我絕對會用第二個例子,因爲加載可能不會被使用的東西只是邪惡的。

+0

像第二個例子一樣放置需求也使得讀者在需要時更清晰。有時當需求不再需要時,需要在代碼中留下。如果它包含將在相關代碼中的許多不同位置使用的內容,我只會將它放在頂部。 – 2016-05-24 19:02:32

1

呃。完全取決於情況。

如果它是一個小包括,你打算在95%的情況下使用它,頂部是好的。對於幾乎所有的情況來說,Top確實很好。

但是,如果它是一個絕對巨大的庫,比如解析只會出現在5%請求中的東西,那麼需要的時候就需要。可能值得在頂部發表評論以使依賴已知,但是 - 愉快的媒介?

無論如何。每次都是判斷。最好不要擔心不確定情況下的性能問題,直到性能的毫秒數真正成爲您的問題。 (難道那種普及是一個很好的問題嗎?)

+0

+1對你(以及所有回覆的人)來說,但如果它是一個大型圖書館,那麼我可能會把它分成多個小文件......然後(重新)詛咒;-) – Mawg 2010-10-15 01:57:00

+1

@LeonixSolutions:在這種情況下,我通常意思是第三方庫,有時會有大量不可分割的部分:/ – Matchu 2010-10-15 02:10:12

+0

我明白了。是的,這是有道理的。謝謝(+1)。 – Mawg 2010-10-15 02:41:13