2016-02-13 113 views
1

我有一個包含以下代碼的文件的index.php:PHP嵌套 'require_once' 循環

<?php 
require_once('A.php'); 
// OTHER CODES ... 

和a.php只會包含:

<?php 
require_once('B.php'); 
// OTHER CODES ... 

和B.php包含:

<?php 
require_once('A.php'); 
// OTHER CODES ... 

當我加載index.php時,我的代碼正確執行並且沒有發生錯誤。 現在我的問題是: 這個算法是否正確?換句話說,require_once可以嵌套多少次。這些'require_once'可以無限重複嗎?有沒有其他方法可用於此目的? 謝謝。

+0

你爲什麼這樣做?似乎對我而言很愚蠢,而不是在同一個文件中只有a和b? – user2267175

+0

B.php是一個巨大的php類文件,它不好結合A.php和B.php @ user2267175 – Reza

+0

最好避免循環依賴。 – Progrock

回答

0

require_once,與require相反,只允許包含您的文件一次。所以你的內含物不應該出現問題。

文檔:http://php.net/manual/en/function.require-once.php

作爲替代方案,你可以閱讀PHP自動加載的機制是如何工作的:http://php.net/manual/en/function.spl-autoload-register.php

+0

謝謝。這是否意味着如果我使用'require'而不是'require_once',我得到了錯誤? – Reza

+0

是的,通過使用'require' A將加載B,然後B將調用A,並且A將加載B.這不是一個真正的錯誤(只是一個錯誤的算法)。通過這樣做,A中的函數也可以被聲明兩次(這將觸發錯誤)。 – Mat

+0

特別感謝。 – Reza