Heim > Artikel > Backend-Entwicklung > Magische Methoden und magische Konstanten in PHP
Dieser Artikel stellt hauptsächlich die magischen Methoden und magischen Konstanten in PHP vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf zurückgreifen >
__destruct()
Die Destruktormethode
Die Destruktormethode wird aufgerufen, bevor das Objekt verschwindet
Mehrere Situationen, in denen das Objekt verschwindet
1,Verwenden Sie explizit die Funktion unset, um eine Variable zu zerstören
2, Nachdem das Skript ausgeführt wurde, wird es ebenfalls automatisch zerstört
3,Das Ändern des Werts der Objektvariablen wird ebenfalls automatisch zerstört
Die Rolle der Destruktormethode
Die Hauptaufgabe besteht darin, die vom Objekt belegten zusätzlichen Ressourcen freizugeben! Eher als das Objekt selbst!
Hinweis:
Die Destruktormethode erfordert normalerweise keine zusätzlichen Definitionen. Sie muss nur definiert werden, wenn zusätzliche Ressourcen (Ressourcen, die nicht zu diesem Objekt gehören) freigegeben werden!
Fassen Sie die Merkmale von Konstruktionsmethoden und Destruktormethoden zusammen:
1, werden alle durch __ dargestellt Beginnt mit
2, ruft automatisch
3 auf,ruft die entsprechende Methode nur auf, wenn eine bestimmte Situation auftritt
Es gibt viele Methoden in PHP
, die gleichzeitig die oben genannten drei Merkmale erfüllen, die als „magische Methoden“ bezeichnet werden!__clone()Diese magische Methode wird beim Klonen eines Objekts automatisch aufgerufen
__set()Weisen Sie einer unzugänglichen Eigenschaft einen Wert zu
: __set() Sobald die magische Methode __set() definiert ist und
einer unzugänglichen Eigenschaft einen Wert zuweist, wird automatisch ausgeführt. Bei dieser Methode wird die Rechenleistung zu diesem Zeitpunkt dem Benutzer selbst übertragen! Diese magische Methode erfordert zwei Parameter:
Einer ist der Attributname des unzugänglichen Attributs
Einer ist der Wert des unzugänglichen Eigentums
Den Wert einer unzugänglichen Eigenschaft abrufen: __get()
Sobald die magische Methode __get() definiert ist, den Wert eines unzugänglichen Attributs erhält, führt diese Methode automatisch aus. Zu diesem Zeitpunkt wird die Rechenleistung dem Benutzer selbst übergeben!
Diese magische Methode erfordert nur einen Parameter, nämlich den Attributnamen des Attributs!
Hinweis:
__get und __set werden häufig in realen Projekten verwendet. Sie alle erscheinen paarweise! Darüber hinaus werden diese beiden Methoden häufig verwendet, um die privaten Eigenschaften von Objekten stapelweise zu verarbeiten!
Der obige Code ist in Ordnung Beschränken Sie das Hinzufügen von Attributen durch Benutzer, um sicherzustellen, dass sich die ursprüngliche interne Struktur der Attribute nicht ändert!
Unzugängliche Attribute löschen: __unset()
Im Allgemeinen können Sie mit der Funktion unset eine öffentliche Datei löschen Eigenschaft eines Objekts:
Wenn die Eigenschaft jedoch nicht zugänglich ist (z. B. privat oder nicht vorhanden ist), wird die __unset wird automatisch ausgeführt. Ob die Löschung erfolgreich sein kann, hängt von der internen Implementierung von __unset ab!
Diese Methode erfordert auch nur einen Parameter, nämlich den Namen des aktuell gelöschten Attributs!
__unset nichts gemacht wird, ist die Standardeinstellung Cannot gelöscht werden (natürlich wird kein Fehler gemeldet!)
__isset()Bestimmen Sie, ob das unzugängliche Attribut vorhanden ist: __isset()
Wenn das Attribut ein unzugängliches Attribut ist, wird es automatisch ausgelöst, wenn beurteilt wird, ob das Attribut vorhanden ist Ausführung!In ähnlicher Weise erfordert diese Methode auch einen Parameter, den Attributnamen, den die Technologie derzeit ermitteln muss!
Beim Aufruf einer unzugänglichen Objektmethode (nicht statische Methode). ) Statische Methode), die magische Methode wird automatisch ausgeführt! Denken: Wie viele Parameter benötigt diese magische Methode derzeit? Parameter 1: Methodenname, ZeichenfolgeTyp Parameter 2: Array Typ, da die Anzahl der Parameter ungewiss ist, können alle Parameter nur in ein Array eingefügt werden Wenn diese Methode nichts bewirkt: Wenn eine nicht zugängliche Klassenmethode (statische Methode) aufgerufen wird, wird die magische Methode automatisch ausgeführt. Wenn Sie diese Methode definieren, müssen Sie vor dem Methodennamen das Schlüsselwort hinzufügen sei eine statische Methode! Ein kleiner Fall Entwerfen Sie einen Mathematikunterricht, um die folgenden Ziele zu erreichen: Aufrufmethode f1: 1, Wenn 1 Parameter übergeben werden, wird der Quadratwert zurückgegeben 2 , Wenn 2 Parameter übergeben werden, wird die Summe ihrer Quadrate zurückgegeben 3, wie werden 3 Parameter übergeben, die Summe ihrer Würfel zurückgeben wird durch Methodenüberladung erreicht: Wenn wir das Objekt als Funktion (oder Methode) aufrufen, wird die magische Methode automatisch ausgeführt! Derzeit wird es nicht sehr häufig verwendet! Erinnern Sie sich an die anonymen Funktionen, die Sie zuvor gelernt haben: Hinweis: Der Grund, warum Sie das Abschlussobjekt $func verwenden können, um die Funktion erfolgreich aufzurufen, liegt darin, dass es eine __invokemagische Methode Wenn wir ein Objekt als String verwenden, wird die Imitationsmethode automatisch ausgeführt! Und der Rückgabewert dieser Methode kann im Allgemeinen das Ergebnis der Serialisierung des Objekts in einen String sein! Tatsächlich löst das System automatisch die Ausführung der __toString-Methode aus: steht für den aktuellen Klassennamen! Beachten Sie den Unterschied zu self: bezieht sich auf die Klasse selbst ( A Struktur, die mehr als nur den Klassennamen enthält), während __CLASS__ nur ein Klassenname ist (der Klassenname ist nur ein Teil der Klasse!) stellt den aktuellen Methodennamen dar! Mehrere PHP „magische Konstanten“ Name Beschreibung Der vollständige Pfad und Dateiname der Datei. Bei Verwendung innerhalb einer eingebundenen Datei wird der Name der eingebundenen Datei zurückgegeben. __DIR__ Das Verzeichnis, in dem sich die Datei befindet. Bei Verwendung innerhalb einer eingebundenen Datei wird das Verzeichnis zurückgegeben, in dem sich die eingebundene Datei befindet. Es entspricht dirname(__FILE__). Verzeichnisnamen enthalten keinen abschließenden Schrägstrich, es sei denn, es handelt sich um das Stammverzeichnis. __FUNCTION__ Funktionsname. Diese Konstante gibt den Namen der Funktion zum Zeitpunkt ihrer Definition zurück (Groß-/Kleinschreibung beachten). __CLASS__ Der Name der Klasse gibt den Namen zurück, als die Klasse definiert wurde (Groß-/Kleinschreibung). empfindlich) . Beachten Sie, dass __CLASS__ seit PHP 5.4 auch für Merkmale funktioniert. Bei Verwendung innerhalb einer Trait-Methode ist __CLASS__ der Name der Klasse, die die Trait-Methode aufruft. __TRAIT__ Der Name des Merkmals. Seit PHP 5.4 gibt diese Konstante den Namen des Merkmals so zurück, wie es definiert wurde (Groß-/Kleinschreibung beachten). Der Merkmalsname enthält den Bereich, in dem er deklariert ist (z. B. FooBar). __METHOD__ Der Methodenname der Klasse (neu hinzugefügt in PHP 5.0.0). Gibt den Namen der Methode so zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten). __NAMESPACE__ Der Name des aktuellen Namespace (Groß- und Kleinschreibung beachten). __call()Beim Aufruf einer unzugänglichen Objektmethode (nicht statische Methode)
__callstatic()Rufen Sie eine unzugängliche Klassenmethode (statische Methode) auf
__invoke()
__toString()
Magic Constant
__CLASS__
__METHOD__
__LINE__
Die aktuelle Zeilennummer in der Datei.
__DATEI__
Das obige ist der detaillierte Inhalt vonMagische Methoden und magische Konstanten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!