__set_state(),调用var_export()导出类时,此静态方法会被调用。
作用:
自 PHP 5.1.0 起,当调用 var_export() 导出类时,此静态方法会被自动调用。
参数:
本方法的唯一参数是一个数组,其中包含按 array('property' =youjiankuohaophpcn value, ...) 格式排列的类属性。
立即学习“PHP免费学习笔记(深入)”;
下面我们先来看看在没有加 __set_state() 情况按下,代码及运行结果如何:
上代码:
电子手机配件网站源码是一个响应式的织梦网站模板,软件兼容主流浏览器,且可以在PC端和手机端中进行浏览。模板包含安装说明,并包含测试数据。本模板基于DEDECms 5.7 UTF-8设计,需要GBK版本的请自己转换。模板安装方法:1、下载最新的织梦dedecms5.7 UTF-8版本。2、解压下载的织梦安装包,得到docs和uploads两个文件夹,请将uploads里面的所有文件和文件夹上传到你的
0
<?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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号