(Empfohlenes Tutorial: PHP-Video-Tutorial)
Wird aufgerufen, wenn die Klasse instanziiert wird
Einfach ausgedrückt: Wenn eine neue Klasse erstellt wird, wird diese Methode automatisch ausgeführt
<?php class autofelix { public function __construct() { echo '我是飞兔小哥~'; } } new autofelix();
Wird automatisch ausgelöst, wenn die Klasse zerstört wird
Sie können die unset-Methode verwenden, um diese Methode auszulösen
<?php class autofelix { public function __destruct() { echo '我是飞兔小哥,别销毁我~'; } } unset(new autofelix());
Sie wird automatisch aufgerufen, wenn die Klasse geklont wird
<?php class autofelix { public function __clone() { echo '我是飞兔小哥,我想克隆你~'; } } $a = new autofelix(); clone $a;
Es wird automatisch aufgerufen, wenn die aufzurufende Methode nicht existiert oder die Berechtigungen nicht ausreichen
Zum Beispiel, wenn ich eine private geänderte Methode innerhalb der Klasse von außerhalb der Klasse aufrufe
<?php class autofelix { private function say() { echo '我是飞兔小哥~'; } public function __call($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } (new autofelix())->say();
Beim Aufruf wird die statische Methode automatisch aufgerufen, wenn sie nicht vorhanden ist oder die Berechtigungen nicht ausreichen
Zum Beispiel, wenn ich die private modifizierte statische Methode innerhalb der Klasse von außerhalb der Klasse aufrufe
<?php class autofelix { private static function say() { echo '我是飞兔小哥~'; } public function __callStatic($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a::say();
Diese Methode wird aufgerufen, wenn var_dump() Klassenobjekt
Wenn diese Methode nicht definiert ist, druckt var_dump() alle Klassenattribute aus
<?php class autofelix { public function __debugInfo() { echo '飞兔小哥给你温馨提示'; } } var_dump(new autofelix());
Dadurch können Sie erhalten private Mitgliedsattribute außerhalb des Objekts
<?php class autofelix { private $name = '飞兔小哥'; public function __get($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } (new autofelix())->name;
Wenn isset() oder empty() für eine unzugängliche Eigenschaft aufgerufen wird, wird diese automatisch aufgerufen
<?php class autofelix { private $name = '飞兔小哥'; public function __isset($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } isset(new autofelix()->name);
Beim Zuweisen eines Werts zu Wenn es sich um eine undefinierte Eigenschaft handelt, wird diese ausgelöst /__sleep
<?php class autofelix { public function __set($name, $value) { echo '你想给' . $name . '赋值' . $value; } } (new autofelix())->name = '飞兔小哥';
Was zurückgegeben werden soll, wenn eine Klasse als String behandelt wird
Hier muss ein String-Typ zurückgegeben werden, sonst wird ein schwerwiegender Fehler gemeldet
<?php class autofelix { public function __invoke() { echo '你想调用我?'; } } (new autofelix())();
Wenn unset() für eine unzugängliche Eigenschaft aufgerufen wird, es wird automatisch aufgerufen
<?php class autofelix { public function __sleep() { echo '我是飞兔小哥~'; } } serialize(new autofelix());
)
Das obige ist der detaillierte Inhalt vonHäufig verwendete magische Methoden in PHP (Zusammenfassungsfreigabe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!