Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn PHP __autoload fehlschlägt?
php __autoload schlägt fehl, weil die Funktion spl_autoload_register die Funktion __autoload in Zend Engine durch spl_autoload ersetzt. Die Lösung besteht darin, die Funktion __autoload neu zu registrieren.
Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer
Was soll ich tun, wenn PHP __autoload fehlschlägt?
Der Grund für den Ausfall der PHP-Funktion __autoload (im Zusammenhang mit Smarty)
Die PHP-Funktion __autoload kann ein einfaches automatisches Laden erreichen, aber nach der Einführung von Smarty wurde festgestellt, dass die __autoload-Funktion ungültig war Später stellte sich heraus, dass es sich um die Funktion spl_autoload_register handelte.
Führen Sie den folgenden Code aus:
function __autoload($name) { require 'class/'.$name.'.php'; echo '1'; } function autoload_test($name) { echo '2'; } spl_autoload_register('autoload_test'); $ca=new Ca();
Das Ergebnis ist Ausgabe 2. Sie können sehen, dass die Funktion __autoload nicht ausgeführt wurde. Die Analyse der offiziellen Website lautet: Wenn die Funktion __autoload() in Ihrem Programm implementiert wurde, muss dies der Fall sein explizit in der Warteschlange _ _autoload() registriert. Denn die Funktion spl_autoload_register() ersetzt die Funktion __autoload() in Zend Engine durch spl_autoload() oder spl_autoload_call().
Damit der Code ordnungsgemäß funktioniert, sollten Sie die __autoload-Funktion erneut registrieren:
function __autoload($name) { require 'class/'.$name.'.php'; echo '1'; } function autoload_test($name) { echo '2'; } spl_autoload_register('autoload_test'); spl_autoload_register('__autoload'); $ca=new Ca();
Empfohlenes Lernen: „PHP Video Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP __autoload fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!