Detaillierte Erklärung der __set_state()-Methode in PHP

藏色散人
Freigeben: 2023-04-07 06:46:02
Original
4716 Leute haben es durchsucht

__set_state(), diese statische Methode wird aufgerufen, wenn var_export() aufgerufen wird, um eine Klasse zu exportieren.

Funktion:

Seit PHP 5.1.0 wird diese statische Methode automatisch aufgerufen, wenn var_export() aufgerufen wird, um eine Klasse zu exportieren.

Parameter:

Der einzige Parameter dieser Methode ist ein Array, das Klassen enthält, die im Format array('property' => value, ...) angeordnet sind. Eigentum.

Werfen wir zunächst einen Blick auf den Code und die Ausführungsergebnisse, ohne __set_state() hinzuzufügen:

Code oben:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
var_export($person);
Nach dem Login kopieren

Sehen Sie sich die Ergebnisse an:

Person::__set_state(array( &#39;sex&#39; => &#39;男&#39;, &#39;name&#39; => &#39;小明&#39;, &#39;age&#39; => 25, ))
Nach dem Login kopieren

Natürlich werden alle Attribute im Objekt ausgedruckt

Nach dem Hinzufügen von __set_state():

Weiter mit dem Code:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public static function __set_state($an_array)
    {
        $a = new Person();
        $a->name = $an_array[&#39;name&#39;];
        return $a;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
$person->name = &#39;小红&#39;;
var_export($person);
Nach dem Login kopieren

Weiterlesen Ergebnis:

Person::__set_state(array( &#39;sex&#39; => &#39;男&#39;, &#39;name&#39; => &#39;小红&#39;, &#39;age&#39; => 25, ))
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der __set_state()-Methode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
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