Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP __autoload fehlschlägt?

Was tun, wenn PHP __autoload fehlschlägt?

藏色散人
藏色散人Original
2021-09-14 10:43:192412Durchsuche

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.

Was tun, wenn PHP __autoload fehlschlägt?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn