PHP中 __set_state()方法详解

互联网 19-7-25
__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()方法详解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:PHP中__invoke()方法详解

相关资讯