如何用php将对象转化为数组

这篇文章主要介绍了如何用php将对象转化为数组的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用php将对象转化为数组文章都会有所收获,下面我们一起来看看吧。

在满城等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都做网站 网站设计制作按需制作网站,公司网站建设,企业网站建设,品牌网站建设,全网营销推广,外贸网站制作,满城网站建设费用合理。

1.使用get_object_vars()函数

PHP提供了get_object_vars()函数,它可以将对象的属性值转化为一个关联数组。这个函数接收一个对象作为参数,并返回一个数组,数组的键是对象属性的名称,数组的值是属性的值。下面是一个例子:

class Person {
    public $name;
    public $age;
    public $gender;
    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}
$person = new Person('Tom', 18, 'male');
$arr = get_object_vars($person);
print_r($arr);

输出结果为:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

2.使用json_encode()函数

除了使用get_object_vars()函数之外,我们还可以使用json_encode()函数将对象转换为JSON格式的字符串,然后使用json_decode()函数将其转换为数组。下面是一个例子:

class Person {
    public $name;
    public $age;
    public $gender;
    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}
$person = new Person('Tom', 18, 'male');
$jsonStr = json_encode($person);
$arr = json_decode($jsonStr, true);
print_r($arr);

输出结果和上一个例子相同。

3.使用对象的__toArray()方法

如果你掌握了面向对象编程的基础知识,那么你可以在自己的类中定义一个__toArray()方法,该方法用于将对象的属性值转化为一个数组。下面是一个例子:

class Person {
    public $name;
    public $age;
    public $gender;
    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
    public function __toArray() {
        $arr = [];
        $arr['name'] = $this->name;
        $arr['age'] = $this->age;
        $arr['gender'] = $this->gender;
        return $arr;
    }
}
$person = new Person('Tom', 18, 'male');
$arr = $person->__toArray();
print_r($arr);

输出结果也和前面两个例子相同。

关于“如何用php将对象转化为数组”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何用php将对象转化为数组”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


当前标题:如何用php将对象转化为数组
标题URL:http://csdahua.cn/article/isjcic.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流