Найти, где был создан экземпляр класса - PullRequest
1 голос
/ 26 октября 2009

Я пытаюсь решить ошибку: Fatal error: Cannot redeclare class

Я искал везде и не могу найти, где был создан экземпляр класса.

В любом случае, я могу напечатать отладочную информацию о существующем экземпляре этого класса.

Ответы [ 3 ]

3 голосов
/ 26 октября 2009

Да, тупой php не говорит вам, где был объявлен класс. Попробуйте следующее (непосредственно перед фатальной ошибкой)

$r = new ReflectionClass("YourClassName"); echo $r->getStartLine();
3 голосов
/ 26 октября 2009

Скорее всего, вы импортируете файл, который объявляет класс более одного раза. Это может быть симптомом того, что включает / требует выхода из-под контроля, поэтому вам может понадобиться просто ваша структура.

Один из альтернативных подходов - использовать автозагрузку для загрузки классов, чтобы избежать подобных проблем. Другой - использовать только include_once или require_once. Я обычно предпочитаю использовать require с простой структурой.

0 голосов
/ 29 июля 2015

Вы можете узнать, где был создан объект, используя var_dump(debug_backtrace()); и просмотрев стек вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...