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

Häufig verwendete magische Methoden in PHP (Zusammenfassungsfreigabe)

WBOY
WBOYnach vorne
2022-09-05 17:34:231591Durchsuche

(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();

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());

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;

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();

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();

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());

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;

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);

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;;

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())();

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());

(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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen