spl_autoload_register
(PHP 5 >= 5.1.2, PHP 7)
spl_autoload_register – Registrieren Sie die angegebene Funktion als Implementierung von __autoload
Syntax
bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
Erklärung
Mit dieser Funktion können Sie die Klasse laden Gibt den Adressierungsmodus an, sodass keine großen Mengen benötigt und eingefügt werden müssen. Das System folgt automatisch den angegebenen Regeln und geht zum entsprechenden Speicherort, um die Klasse zu finden, die instanziiert werden muss. Obwohl diese Methode relativ niedrig ist, müssen wir diese Arbeit im Allgemeinen nicht ausführen, wenn ein Framework vorhanden ist. Aber es ist unvermeidlich, dass es immer noch Zeiten gibt, in denen ich es verwenden muss. Als ich beispielsweise diesen Blog schrieb, musste ich mich selbst mit dem Skript herumschlagen. Das folgende Beispiel ist ein einfaches Autoloading-Programm, das in meinem Skript verwendet wird.
Beispiel
spl_autoload_register(function ($class) { $rootPath = realpath(sprintf('%s/..', __DIR__)); $paths = array( 'src', ); foreach ($paths as $path) { if (is_file( $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class . '.php' )) { include $file; break; } } });
Beachten Sie, dass anonyme Funktionen nur in PHP 5.3 und höher verwendet werden können. Wenn Sie feststellen, dass sie nicht verwendet werden können, überprüfen Sie Ihre PHP-Version. Hier gebe ich einfach alle zu durchsuchenden Klassen in meinem src-Ordner an und die Klassennamen stimmen genau mit den Dateinamen überein.
Das Obige ist der Inhalt von Hinweis 019 über spl_autoload_register, um ein automatisches Laden zu erreichen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!