Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die magischen Methoden in PHP?

Was sind die magischen Methoden in PHP?

青灯夜游
青灯夜游Original
2021-06-30 13:55:251636Durchsuche

Magische Methoden umfassen: „__construct()“, „__destruct()“, „__set()“, „__get()“, „__isset()“, „__unset()“, „__sleep()“, „___wakeup „()“, „__call()“ usw.

Was sind die magischen Methoden in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP-Magiemethode

In der objektorientierten Programmierung bietet PHP eine Reihe magischer Methoden, diese Magische Methoden bieten viel Komfort beim Programmieren und ihre Rolle in PHP ist sehr wichtig. Magic-Methoden in PHP beginnen normalerweise mit __ (zwei Unterstrichen) und erfordern keine expliziten Aufrufe, werden aber unter bestimmten Bedingungen automatisch aufgerufen.

__call()Wird automatisch aufgerufen, wenn eine nicht existierende Methode aufgerufen wird__callStatic()Wird automatisch aufgerufen, wenn eine nicht existierende statische Methode aufgerufen wird__toString()Beim automatischen Konvertieren eines Objekts in einen String aufgerufen__invoke()Wird automatisch aufgerufen, wenn versucht wird, das Objekt als Methode aufzurufen__set_state()Wird automatisch aufgerufen, wenn die Funktion var_export() verwendet wird und einen Array-Parameter akzeptiert__clone( )Wird automatisch aufgerufen, wenn „Clone“ zum Kopieren eines Objekts verwendet wird

Das Folgende ist eine kurze Einführung in mehrere häufig verwendete magische Methoden:

1. __set()-Methode

Beim Zuweisen von Werten zu undefinierten oder unsichtbaren Klassenattributen in der aktuellen Umgebung wird die __set()-Methode automatisch aufgerufen. Das Syntaxformat zum Definieren dieser Methode lautet wie folgt:

public function __set($key, $value){
    ... ... ;
}

Darunter ist der Parameter $key der Name der zu bedienenden Variablen und $value der Wert der Variablen $key.

2. __get()-Methode

Beim Aufrufen oder Abrufen undefinierter oder unsichtbarer Klassenattribute in der aktuellen Umgebung wird die __get()-Methode automatisch aufgerufen. Das Syntaxformat zum Definieren dieser Methode lautet wie folgt:

rrree

Parameter $ Name ist der Name der Variablen, die bearbeitet werden soll.

3. __isset()-Methode

Wenn die Funktion isset() oder empty() außerhalb der Klasse für ein Attribut verwendet wird, auf das nicht zugegriffen werden kann oder das in der Klasse nicht vorhanden ist, wird die Methode __isset() automatisch aufgerufen Das Syntaxformat dieser Methode lautet wie folgt:

public function __get($name){
    ... ... ;
}

Der Parameter $name ist der Name des Attributs, auf das zugegriffen werden soll. Die Funktion

isset() kann prüfen, ob eine Variable existiert und nicht NULL ist. Sie übergibt eine Variable als Parameter und gibt true zurück, wenn die übergebene Variable existiert, andernfalls gibt sie false zurück. Die Funktion

empty() kann prüfen, ob eine Variable leer ist. Sie muss auch eine Variable als Parameter übergeben. Wenn die Variable nicht vorhanden ist oder der Wert der Variablen gleich FALSE ist, ist dies der Fall als nicht existent angesehen.

Auf öffentliche Mitglieder einer Klasse kann außerhalb der Klasse zugegriffen werden, während auf private Mitglieder außerhalb der Klasse nicht zugegriffen werden kann. Mit anderen Worten: Wir können die Funktion isset() oder empty() verwenden, um zu prüfen, ob die öffentlichen Eigenschaften in der Klasse vorhanden sind, diese beiden Funktionen sind jedoch für die privaten Eigenschaften in der Klasse ungültig.

Wenn Sie die Funktion isset() oder empty() verwenden möchten, um private Eigenschaften in der Klasse zu erkennen, müssen wir der Klasse nur eine Methode __isset() hinzufügen. Bei Verwendung von isset() oder empty() außerhalb der Klasse leer ()-Funktion wird die __isset()-Methode in der Klasse automatisch aufgerufen.

4. __unset()-Methode

Wenn die unset()-Funktion außerhalb der Klasse für ein Attribut verwendet wird, auf das nicht zugegriffen werden kann oder das in der Klasse nicht vorhanden ist, wird die __unset()-Methode automatisch aufgerufen Die Methode lautet wie folgt:

public function __isset($name){
    ... ... ;
}

Der Parameter $name ist der Name des Attributs, auf das zugegriffen werden soll.

Schauen wir uns zunächst die Funktion unset() an. Die Funktion der Funktion unset() besteht darin, eine oder mehrere Variablen als Parameter zu übergeben .

Ähnlich können wir auch die Funktion unset() verwenden, um Mitgliedsattribute in der Klasse außerhalb der Klasse zu löschen. Ähnlich wie bei der oben vorgestellten Methode __isset() können Sie, wenn Sie die öffentlichen Attribute in der Klasse löschen möchten, direkt die Funktion unset() verwenden. Wenn Sie die privaten Attribute in der Klasse löschen möchten, müssen Sie ein __unset hinzufügen () zur Klassenmethode.

5. __call()-Methode

Wenn eine nicht zugängliche oder nicht vorhandene Methode in der Klasse aufgerufen wird, wird die __call()-Methode aufgerufen. Das Syntaxformat dieser Methode lautet wie folgt:

public function __unset($name){
    ... ... ;
}

wobei $name der Name der aufzurufenden Methode und $arguments ein an $name übergebenes Parameterarray ist.

Wenn die aufgerufene Methode nicht existiert, wird die Methode __call() automatisch aufgerufen und das Programm wird weiter ausgeführt, wodurch verhindert wird, dass das Programm durch einen Fehler beendet wird, wenn die aufrufende Methode nicht existiert.

6. __clone()-Methode

Sie können das Schlüsselwort clone verwenden, um ein Objekt zu kopieren. Wenn der Kopiervorgang abgeschlossen ist, wird die __clone()-Methode im neu erstellten Objekt (dem generierten Objekt) verwendet durch Kopieren) wird automatisch aufgerufen. Mit dieser Methode können wir einige notwendige Vorgänge ausführen. Das Syntaxformat der __clone()-Methode lautet wie folgt:

public function __call($name, $arguments){
    ... ... ;
}

Diese Funktion erfordert keine Parameterübergabe.

Empfohlenes Lernen: „PHP-Video-Tutorial

Magische Methode Funktion
__construct() Wird beim Instanziieren einer Klasse automatisch aufgerufen
__destruct() Wird automatisch aufgerufen, wenn das Klassenobjekt mit der Verwendung fertig ist
__set() Wird automatisch aufgerufen, wenn einer undefinierten Eigenschaft ein Wert zugewiesen wird.
__get(). Wird automatisch aufgerufen, wenn eine undefinierte Eigenschaft aufgerufen wird
__unset() Wird automatisch aufgerufen, wenn wir unset() verwenden.
__sleep() Wird automatisch aufgerufen, wenn Serialisierung mit serialize verwendet wird

Das obige ist der detaillierte Inhalt vonWas sind die magischen Methoden in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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