Heim > Backend-Entwicklung > PHP-Problem > Häufig verwendete magische Methoden in PHP (Zusammenfassungsfreigabe)

Häufig verwendete magische Methoden in PHP (Zusammenfassungsfreigabe)

WBOY
Freigeben: 2023-03-16 19:32:02
nach vorne
1613 Leute haben es durchsucht

(Empfohlenes Tutorial: PHP-Video-Tutorial)

Konstruktormethode/__construct

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 &#39;我是飞兔小哥~&#39;;
    }
}

new autofelix();
Nach dem Login kopieren

Destruktormethode/__destruct

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 &#39;我是飞兔小哥,别销毁我~&#39;;
    }
}

unset(new autofelix());
Nach dem Login kopieren

Klonmethode/__clone

Sie wird automatisch aufgerufen, wenn die Klasse geklont wird

<?php
class autofelix 
{
    public function __clone()
    {
        echo &#39;我是飞兔小哥,我想克隆你~&#39;;
    }
}

$a = new autofelix();
clone $a;
Nach dem Login kopieren

Nein Statische Aufrufmethode/__call

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 &#39;我是飞兔小哥~&#39;;
    }

    public function __call($name, $arguments)
    {
        echo &#39;你无权调用&#39; . $name . &#39;方法&#39;;
        die;
    }
}

(new autofelix())->say();
Nach dem Login kopieren

Statischer Aufruf method/__callStatic

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 &#39;我是飞兔小哥~&#39;;
    }

    public function __callStatic($name, $arguments)
    {
        echo &#39;你无权调用&#39; . $name . &#39;方法&#39;;
        die;
    }
}

$a = new autofelix();
$a::say();
Nach dem Login kopieren

Drucken method/__debugInfo

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 &#39;飞兔小哥给你温馨提示&#39;;
    }
}

var_dump(new autofelix());
Nach dem Login kopieren

Mitgliedsattribute abrufen/__get

Dadurch können Sie erhalten private Mitgliedsattribute außerhalb des Objekts

<?php
class autofelix 
{
    private $name = &#39;飞兔小哥&#39;;

    public function __get($name)
    {
        if(in_array($name, [&#39;name&#39;, &#39;age&#39;])) {
           echo $this->name;
        } else {
            echo &#39;不是什么东西都能访问的~&#39;;
        }
    }
}

(new autofelix())->name;
Nach dem Login kopieren

Unzugängliche Attribute abrufen/__isset

Wenn isset() oder empty() für eine unzugängliche Eigenschaft aufgerufen wird, wird diese automatisch aufgerufen

<?php
class autofelix 
{
    private $name = &#39;飞兔小哥&#39;;

    public function __isset($name)
    {
        if(in_array($name, [&#39;name&#39;, &#39;age&#39;])) {
           echo $this->name;
        } else {
            echo &#39;不是什么东西都能访问的~&#39;;
        }
    }
}

isset(new autofelix()->name);
Nach dem Login kopieren

Attributzuweisung/__set

Beim Zuweisen eines Werts zu Wenn es sich um eine undefinierte Eigenschaft handelt, wird diese ausgelöst /__sleep

Wenn serialize() außerhalb der Klasse aufgerufen wird, wird es automatisch aufgerufen.

<?php
class autofelix 
{
    public function __set($name, $value)
    {
        echo &#39;你想给&#39; . $name . &#39;赋值&#39; . $value;
    }
}

(new autofelix())->name = &#39;飞兔小哥&#39;;
Nach dem Login kopieren

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 &#39;你想调用我?&#39;;
    }
}

(new autofelix())();
Nach dem Login kopieren

Delete call/__unset

Wenn unset() für eine unzugängliche Eigenschaft aufgerufen wird, es wird automatisch aufgerufen

<?php
class autofelix 
{
    public function __sleep()
    {
        echo &#39;我是飞兔小哥~&#39;;
    }
}

serialize(new autofelix());
Nach dem Login kopieren

(Empfohlenes Tutorial:

PHP-Video-Tutorial

)

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!

Verwandte Etiketten:
php
Quelle:jb51.net
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage