2013-08-06 381 views
0

我還應該寫一個php文件需要的包含,如果它們已經被之前執行的其他php文件包含在手中嗎?php包括文件練習

例如,假設我有3個php文件:parent.php,child.php和food.php。

parent.php和child.php需要位於food.php中的函數。 parent.php首先包含food.php,然後是child.php。這意味着child.php也會爲它加載food.php。

因此,對於child.php,我還應該寫require_once/include_once('food.php'),還是把它放開?

謝謝。

+0

如果您確定它已被加載,則不需要再次加載它。如果你不確定,那麼使用'require_once()'。 – 2013-08-06 01:23:29

回答

0

在理想情況下你將知道文件正在包含哪些內容,基於框架甚至簡單的文件結構。

只是包括文件在這裏和那裏「以防萬一你忘了」是一個非常糟糕的編碼習慣。你在哪裏畫線?在header.php中設置meta標籤,但也在index.php中,以防它在header.php中無法使用?

你可以使用require_once()來代替,這將停止在錯誤(而include_once將繼續做好剩餘腳本) - 如:

PHP Fatal error: require_once(): Failed opening required 'food.php'

雖然PHP應該服從,只包括「一次」,它可能會導致重新包括文件,錯誤/警告等問題,所以只需正確地構建文件並在需要時將文件包含在文件中(通常位於需要文件的頂部)

如果我正確理解你,你只需要parent.php首先包含food.php,然後是child.php,因此parent.php和child.php都包含將有權訪問food.php中的任何內容。

希望有所幫助。

0

在你的例子中,child.php不需要包含food.php

0

這將是一個好主意,包括單獨的文件。如果由於某種原因,food.php沒有包含在parent.php中,那麼child.php中的代碼將不起作用。

爲防止出現這種情況,您可以在兩個文件中都加載food.php,如果其中一個文件失敗,另一個文件將順利運行。

重命名文件將使其更清晰。

的functions.php:

//some code 

file1.php:

require_once('functions.php'); 
//some code 

file2.php:

require_once('functions.php'); 
//some code