Heim Backend-Entwicklung PHP-Tutorial Ausführliche Erläuterung von Anwendungsbeispielen des automatischen Lademechanismus Autoload von PHP

Ausführliche Erläuterung von Anwendungsbeispielen des automatischen Lademechanismus Autoload von PHP

Jul 01, 2017 am 09:33 AM
autoload php 用法

Seit PHP5 wurde die Autoload-Interceptor-Methode eingeführt, die automatisch Referenzen in Klassendateien einschließen kann. Siehe die spezifische Verwendung unten.

Wenn Sie während des PHP-Entwicklungsprozesses eine Klasse von außen einführen möchten, verwenden Sie normalerweise die Methoden include und require, um die Datei einzuschließen, die diese definiert Dies kann jedoch zu einer großen Anzahl von Include- oder Require-Methodenaufrufen im neuen Skript führen, die auf die Datei verweisen. Wenn sie versehentlich weggelassen werden, treten Fehler auf, die die Wartung des Codes erschweren.

Seit PHP5 wurde die Autoload-Interceptor-Methode eingeführt, die automatisch Verweise auf Klassendateien einschließen kann:

function autoload($className) { 
include_once $className . '.class.php'; 
} 
$user = new User();
Nach dem Login kopieren

Wenn die PHP-Engine versucht, eine zu instanziieren unbekannt Beim Betrieb einer Klasse wird die Methode autoload() aufgerufen, die PHP die letzte Chance gibt, die erforderliche Klasse zu laden, bevor ein Fehler auftritt. Wenn der obige Code ausgeführt wird, führt die PHP-Engine daher tatsächlich automatisch die Autoload-Methode für uns aus und schließt die Datei User.class.php ein.

In der Autoload-Funktion ausgelöste Ausnahmen können vom Catch-Anweisungsblock nicht abgefangen werden und führen zu einem schwerwiegenden Fehler.

Wenn Sie den interaktiven CLI-Modus von PHP verwenden, wird der automatische Lademechanismus nicht ausgeführt.

Wenn Sie beispielsweise Benennungsregeln im PEAR-Stil verwenden möchten, müssen Sie die Datei User/Register.php einführen. Sie können sie auch wie folgt implementieren:

//加载我 
function autoload($className) { 
$file = str_replace('_', DIRECTORY_SEPARATOR, $className); 
include_once $file . 'php'; 
} 
$userRegister = new User_Register();
Nach dem Login kopieren

Obwohl dies Die Methode ist praktisch und funktioniert in großen Mengen nicht. Wenn mehrere Klassenbibliotheken in eine Anwendung eingeführt werden, können aufgrund der Autoload-Mechanismen verschiedener Klassenbibliotheken einige unerklärliche Probleme auftreten. Nach der Einführung der SPL-Standardbibliothek in PHP5 haben wir eine neue Lösung, die Funktion spl_autoload_register().

Die Funktion dieser Funktion besteht darin, die Funktion im Autoload-Funktionsstapel von SPL zu registrieren und die Systemstandardfunktion autoload() zu entfernen. Sobald die Funktion spl_autoload_register() aufgerufen wird und eine undefinierte Klasse aufgerufen wird, ruft das System nacheinander alle bei der Funktion spl_autoload_register() registrierten Funktionen auf, anstatt automatisch die Funktion autoload() aufzurufen. Das folgende Beispiel ruft User/Register.php auf stattdessen. User_Register.class.php:

Code kopieren Der Code lautet wie folgt:

//不加载我 
function autoload($className) { 
include_once $className . '.class.php'; 
} 
//加载我 
function autoload($className) { 
$file = str_replace('/', DIRECTORY_SEPARATOR, $className); 
include_once $file . '.php'; 
} 
//开始加载 
spl_autoload_register('autoload'); 
$userRegister = new User_Register();
Nach dem Login kopieren

Bei Verwendung von spl_autoload_register() können wir auch berücksichtigen Verwenden einer Für eine sicherere Initialisierungsaufrufmethode lautet die Referenz wie folgt:

Der Code lautet wie folgt:

//系统默认autoload函数 
function autoload($className) { 
include_once $className . '.class.php'; 
} 
//可供SPL加载的autoload函数 
function autoload($className) { 
$file = str_replace('_', DIRECTORY_SEPARATOR, $className); 
include_once $file . '.php'; 
} 
//不小心加载错了函数名,同时又把默认autoload机制给取消了……囧 
spl_autoload_register('_autoload', false); 
//容错机制 
if(false === spl_autoload_functions()) { 
if(function_exists('autoload')) { 
spl_autoload_register('autoload', false); 
} 
}
Nach dem Login kopieren

In einer Unix/Linux-Umgebung, wenn Sie mehrere haben Kleinere Klassen sind einfach zu verwalten. Wenn sie alle in eine PHP-Datei geschrieben sind, können sie durch Erstellen von Softlinks mit dem Befehl ln -s schnell in mehrere Kopien mit unterschiedlichen Klassennamen verteilt und dann über Autoload geladen werden Mechanismus.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Anwendungsbeispielen des automatischen Lademechanismus Autoload von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles