跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

PHP中 __set_state()方法详解

__set_state(),调用var_export()导出类时,此静态方法会被调用。 作用: 自 PHP 5.1.0 起,当调用 var_export() 导出类时,此静态方法会被自动调用。 参数: 本方法的唯一参数是一个数组,其中包含按 array('property' =youjiankuohao php cn value, ...) 格式排列的类属性。 立即学习 “ PHP免费学习笔记(深入) ”; 下面我们先来看看在没有加 __set_state() 情况按下,代码及运行结果如何: 上代码: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载
name = $name; $this->age = $age; $this->sex = $sex; } } $person = new Person('小明'); // 初始赋值 var_export($person);
看结果:
Person::__set_state(array( 'sex' => '男', 'name' => '小明', 'age' => 25, ))
很明显,将对象中的属性都打印出来了 加了 __set_state() 之后: 继续上代码:
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, ))

相关文章