require_once, automatyczne ładowanie potrzebnych klas z zewnętrznych plików

0

Witam,
mam książkę do PHP i tam znalazłem taki kod, który według autora załaduje mi z pliku klasy które akurat potrzebuję.
Zrobiłem więc tak jak tam było:

function class_autoload($classname) {
            echo 'require_once';
            require_once 'class-{$classname}.php';
        }

        spl_autoload_register('class_autoload');
        
        echo 'mysql connection';
        $sqllib = new mysqllib();

Potrzebna mi klasa jest w pliku class-mysqllib.php w tym samym folderze.
No więc wygląda to tak: na mojej stronie wypisuje się 'mysql connection', potem 'require_once', a potem nic, reszta strony się nie pokazuje.
Czemu nie wyskauje żaden błąd? Jak sprawdzić co jest źle?

0

Jeśli błędy się nie pokazują to:

  1. Nie ma błędu, trzeba szukać przyczyny w innym miejscu.
  2. Masz wyłączone wyświetlanie błędu. Na początku skryptu dopisz:
ini_set('display_errors', 1);

albo przestaw w ustawieniach phpa dla wersji developerskiej serwera.

Źle użyłeś require_once. Nazwa klasy jest ujęta w apostrofy, które nie zamieniają zmiennej na jej zawartość.
Próbujesz załadować plik o nazwie dokładnie takiej, jaka jest w apostrofach (czyli z dolarem itd.).
Błąd nie pojawia się pewnie przez ustawione niewyświetlanie błędów.

Spróbuj zamienić linijkę z require_once na

require_once "class-{$classname}.php";

dodanie znaczników <code class="php"> - fp

1 użytkowników online, w tym zalogowanych: 0, gości: 1