У меня есть класс в php, называемый «SEO_URL». В точке в этом классе у меня есть этотphp класс не найден, когда он включен
$class_name = "cPath_SEO_URL";
return $class_name::href();
и я получаю
Fatal error: Class 'cPath_SEO_URL' not found in
...\includes\classes\seo.class.php on line 52
Дело в том, я включил класс поверх SEO_URL
include_once(/path/to/my/class);
class SEO_URL{
}
и я получаю эту ошибку ,
Однако, когда я жестко программирую класс над классом SEO_URL, он работает. Так что это работает.
class cPath_SEO_URL{
function cPath_SEO_URL(){}
function href() { return "CPathHref"; }
}
class SEO_URL{
...
$class_name = "cPath_SEO_URL";
return $class_name::href();
...
}
и это не
include_once(/path/to/my/class);
class SEO_URL{
...
$class_name = "cPath_SEO_URL";
return $class_name::href();
...
}
Я пытаюсь это интернет-магазина.
Почему?
У вас отключены предупреждения PHP? PHP будет генерировать исключение E_WARNING, если он не может найти ваш файл класса, это обычно выводится в браузер, но может быть отключено. – JamesHalsall
Не обижайтесь, но мой вопрос с 90% -ным вопросом является неправильным. Вы должны использовать require_once вместо include_once, чтобы ошибка при чтении (например, неправильное имя файла/недостаточные права доступа) приводила к фатальной ошибке php вместо простого предупреждения. – phihag
+1 для @phihag за то, что вы должны использовать 'require_once', а не' include_once', где ваша программа не может жить без включенного файла. Это даст вам полезные ошибки, если при попытке использовать связанные функции потребуются ошибки, а не странные ошибки. – Spudley