__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='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } } $person = new Person('小明'); // 初始赋值 var_export($person);
Sehen Sie sich die Ergebnisse an:
Person::__set_state(array( 'sex' => '男', 'name' => '小明', 'age' => 25, ))
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='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } public static function __set_state($an_array) { $a = new Person(); $a->name = $an_array['name']; return $a; } } $person = new Person('小明'); // 初始赋值 $person->name = '小红'; var_export($person);
Weiterlesen Ergebnis:
Person::__set_state(array( 'sex' => '男', 'name' => '小红', 'age' => 25, ))
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!