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

Was sind die magischen Methoden in PHP?

王林
王林Original
2020-08-20 13:50:172320Durchsuche

Die magischen Methoden in PHP sind: 1. __sleep, das ein Array zurückgibt, das die Namen aller Variablen im Objekt enthält, die serialisiert werden sollen; 2. __tostring, das den auszugebenden Inhalt zurückgibt, wenn eine Klasse als String behandelt wird 3. __construct, Konstruktionsmethode; 4. __destruct, Destruktormethode.

Was sind die magischen Methoden in PHP?

Behalten Sie alle Klassenmethoden, die mit einem doppelten Unterstrich (__) beginnen, als magische Methoden in PHP bei.

(Empfohlenes Tutorial: php-Grafik-Tutorial)

Werfen wir einen Blick auf die magischen Methoden:

1. __sleep: Gibt ein Array zurück, das die Namen aller Variablen im Objekt enthält, die serialisiert werden sollen.

Die Serialisierungsfunktion prüft beim Serialisieren der Klasse zunächst, ob die __sleep-Methode in der Klasse vorhanden ist. Falls vorhanden, wird diese Methode aufgerufen, bevor der Serialisierungsvorgang ausgeführt wird, und nur die Eigenschaften im von __sleep zurückgegebenen Array werden serialisiert. Wenn __sleep nichts zurückgibt, wird null serialisiert und ein Fehler auf E_NOTICE-Ebene generiert.

__sleep kann keine privaten Mitglieder der übergeordneten Klasse zurückgeben, andernfalls tritt ein Fehler auf E_NOTICE-Ebene auf. Diese Methode eignet sich für große Objekte, die jedoch nicht alle Daten enthalten müssen.

2. __wakeup: Im Gegensatz zu __sleep prüft die Deserialisierungsfunktion zunächst, ob die Methode __wakeup in der Klasse vorhanden ist, und führt dann den Deserialisierungsvorgang aus. Wird verwendet, um die von einigen Objekten benötigten Ressourcen vor der Deserialisierung oder anderen Initialisierungsvorgängen vorzubereiten.

3. __tostring: Gibt den auszugebenden Inhalt zurück, wenn eine Klasse als String behandelt wird. Diese Methode muss einen String zurückgeben und darf in dieser Methode keine Ausnahme auslösen, da sonst ein schwerwiegender Fehler auftritt.

Vor PHP5.2 wurde diese Methode nur wirksam, wenn echo und print direkt verwendet wurden. Danach kann sie in jeder String-Umgebung wirksam werden. Wenn ein Objekt, das die __toString-Methode nicht definiert, in einen String konvertiert wird, ist dies ein fataler Fehler Es wird ein Fehler auftreten.

(Video-Tutorial-Empfehlung: php-Video-Tutorial)

4. __invoke: Ab PHP5.3 wird diese Methode aufgerufen, wenn versucht wird, ein Objekt als Funktion aufzurufen.

5. __set_state: Ab PHP5.1 wird diese statische Methode aufgerufen, wenn die Funktion var_export aufgerufen wird, um eine Klasse zu exportieren. Diese Methode hat nur einen Parameter, nämlich ein Array, das Attribute als Schlüssel und Attributwerte als Werte enthält. Mit dieser Methode kann gesteuert werden, welche Mitglieder exportiert werden können.

6. __debugInfo: Ab PHP 5.6 wird diese Methode aufgerufen, wenn die Funktion var_dump aufgerufen wird, um zu steuern, welche Attribute gedruckt werden können. Alle öffentlichen und geschützten sowie privaten Attribute werden gedruckt. Gibt ein Array zurück, das Eigenschaften enthält, die gedruckt werden können.

7. __construct: Konstruktorfunktion.

8. __destruct: Destruktor.

9, __set, __get, __isset, __unset: überladene Attribute.

10, __call, __callstatic: überladene Methoden.

11. __clone: ​​​​Objektkopie.

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