查找实例化类的位置

时间:2009-10-26 09:41:14

标签: php debugging class instance

我试图解决错误:Fatal error: Cannot redeclare class

我一直在寻找各处,我无法找到实例化课程的位置。

无论如何,我可以打印有关该类的现有实例的调试信息。

3 个答案:

答案 0 :(得分:3)

您有可能导入多次声明该类的文件。这可能是包含/需要失控的症状,因此您可能只需要简单的结构。

另一种方法是使用自动加载来加载类以避免此类问题。另一种方法是仅使用include_once或require_once。我通常更喜欢使用具有简单结构的require。

答案 1 :(得分:3)

是的,愚蠢的php不会告诉你声明类的位置。尝试以下(在致命错误行之前)

$r = new ReflectionClass("YourClassName"); echo $r->getStartLine();

答案 2 :(得分:0)

您可以使用var_dump(debug_backtrace());并查看调用堆栈,找出对象的实例化位置。