php 5.3-php 5.3中循环包含的问题


php 5.3 - Problems with circular includes in PHP 5.3

我们正在测试到php5.3的迁移,发现了一些奇怪的问题。试图追踪到底发生了什么。这是一个简化的场景。

文件.php

include_once(b.php);
class A {....

文件b.php

include_once(a.php);
class B extends A {....

事实上,循环引用是通过一条更加复杂的路径发生的,还有各种其他的包含。但是,主要的想法是,当它涉及到类B的定义时,它会抛出一个致命错误,因为它没有类a的定义。

想法?我们正在努力清理我们的include,希望能防止这些循环引用,但我很好奇为什么会失败,尤其是看到它可能依赖于版本。

谢谢!

使用spl_autoload而不是include
您可以在此处找到自动加载类和使用标准的示例:http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1

它将清理您的代码,请确保:)