Heim >Backend-Entwicklung >PHP-Tutorial >Grund für den Ausfall der PHP-Funktion __autoload (im Zusammenhang mit Smarty)

Grund für den Ausfall der PHP-Funktion __autoload (im Zusammenhang mit Smarty)

WBOY
WBOYOriginal
2016-07-29 09:16:121132Durchsuche

Die PHP-Funktion __autoload kann ein einfaches automatisches Laden erreichen, aber nach der Einführung von Smarty wurde festgestellt, dass die Funktion __autoload ungültig war. Später wurde festgestellt, dass der Grund die Funktion spl_autoload_register war.

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: Wenn ja Wurde die Funktion __autoload() in Ihrem Programm implementiert, muss sie explizit in der Warteschlange __autoload() registriert werden. 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, sollte die __autoload-Funktion neu registriert werden:

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();

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers. Eine Vervielfältigung ist ohne die Erlaubnis des Bloggers nicht gestattet.

Das Obige stellt die Gründe für den Ausfall der PHP-Funktion __autoload (im Zusammenhang mit Smarty) vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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