__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 php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!