__set_state()、この静的メソッドは、クラスをエクスポートするために var_export() を呼び出すときに呼び出されます。
関数:
PHP 5.1.0 以降、クラスをエクスポートするために var_export() が呼び出されるときに、この静的メソッドが自動的に呼び出されます。
パラメータ:
このメソッドの唯一のパラメータは、array('property' => value, ...) の形式で配置されたクラスを含む配列です。属性。
まず、__set_state() を追加せずにコードと実行結果を見てみましょう:
上記のコード:
<?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);
結果を確認してください:
Person::__set_state(array( 'sex' => '男', 'name' => '小明', 'age' => 25, ))
明らかに、オブジェクト内のすべての属性が出力されます。
__set_state() を追加した後:
コードを続行します:
<?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);
続きを読みます結果:
Person::__set_state(array( 'sex' => '男', 'name' => '小红', 'age' => 25, ))
以上がPHPの__set_state()メソッドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。