__set_state(), cette méthode statique sera appelée lors de l'appel de var_export() pour exporter une classe.
Fonction :
Depuis PHP 5.1.0, cette méthode statique sera automatiquement appelée lorsque var_export() est appelée pour exporter une classe.
Paramètres :
Le seul paramètre de cette méthode est un tableau contenant des classes disposées au format array('property' => value, ...) propriété.
Jetons d'abord un coup d'œil au code et aux résultats d'exécution sans ajouter __set_state() :
Code ci-dessus :
<?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);
Regardez les résultats :
Person::__set_state(array( 'sex' => '男', 'name' => '小明', 'age' => 25, ))
Évidemment, tous les attributs de l'objet sont imprimés
Après avoir ajouté __set_state() :
Continuez avec le 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);
Continuez la lecture Résultat :
Person::__set_state(array( 'sex' => '男', 'name' => '小红', 'age' => 25, ))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!