Mam klasę w php o nazwie "SEO_URL". W punkcie w tej klasie mam tenNie znaleziono klasy php, gdy jest ona dołączona.
$class_name = "cPath_SEO_URL";
return $class_name::href();
i dostaję
Fatal error: Class 'cPath_SEO_URL' not found in
...\includes\classes\seo.class.php on line 52
Rzecz mam włączone klasę na szczycie SEO_URL
include_once(/path/to/my/class);
class SEO_URL{
}
i dostaję ten błąd .
Jednak, gdy twardo koduję klasę na górze klasy SEO_URL, działa. To działa.
class cPath_SEO_URL{
function cPath_SEO_URL(){}
function href() { return "CPathHref"; }
}
class SEO_URL{
...
$class_name = "cPath_SEO_URL";
return $class_name::href();
...
}
i to nie
include_once(/path/to/my/class);
class SEO_URL{
...
$class_name = "cPath_SEO_URL";
return $class_name::href();
...
}
Próbuję to w osCommerce.
Dlaczego tak jest?
Czy masz wyłączone ostrzeżenia PHP? PHP wyrzuci wyjątek E_WARNING, gdy nie może znaleźć pliku klasy, zazwyczaj będzie to wyjście do przeglądarki, ale może być wyłączone. – JamesHalsall
Bez obrazy, ale moje 90% -owe przypuszczenie to plik klasy nie jest poprawny. Powinieneś użyć require_once zamiast include_once, aby błąd podczas odczytu (jak zła nazwa pliku/niewystarczające prawa dostępu) spowodował fatalny błąd php zamiast tylko ostrzeżenia. – phihag
+1 dla @phihag, mówiąc, że powinieneś używać 'require_once' zamiast' include_once', gdzie twój program nie może żyć bez dołączonego pliku. Daje to użyteczne błędy, gdy próba użycia powiązanych funkcji nie powiedzie się, a nie dziwne błędy. – Spudley