2016-02-13 163 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