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

require_once, automatyczne ładowanie potrzebnych klas z zewnętrznych plików
Losiu22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
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:

Kopiuj
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?

MK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 126
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:
Kopiuj
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

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.