Heim >Backend-Entwicklung >PHP-Tutorial >Hinweis 019 Automatisches Laden durch spl_autoload_register

Hinweis 019 Automatisches Laden durch spl_autoload_register

黄舟
黄舟Original
2016-12-26 10:13:351141Durchsuche

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)!


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