好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
PHP中如何将对象转化为数组? 关闭 返回上一级  

PHP中如何将对象转化为数组?
+ 查看更多

发布日期:2017-03-30 16:45
分类:PHP
浏览次数:386

我的网站用到了一个API,这个API的数据存储在对象中,但是我的代码中数据是数组的形式?我想要一种的快速且方法把对象转化为数组。


回答:

只要将它进行类型转换就可以了
$array = (array) $yourObject;

如果将一个对象转化为数组,转换结果是数组的元素是对象的属性。关键字是成员变量的名字,但是也有例外:整数属性是不可用的;私有变量以类名为变量名前缀;
保护变量以*为变量名的前缀。这些前缀值两则没有字节。
例如: 简单的对象

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );

输出:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

例如:复杂的对象

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
 $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );

输出(为了清晰以“隔开”):

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}

以var_export 方法不是以var_dump方法输出:

array (
  '' . "" . 'Foo' . "" . 'foo' => 1,
  '' . "" . '*' . "" . 'bar' => 2,
  'baz' => 
  stdClass::__set_state(array(
  )),
)

这种方式不能深入的映射对象图,并且你要用空字节来获得非共有属性。这种方式适用于当转换 StdClass 对象或者仅有共有属性的对象时。

另见这篇深入理解的博客文章:
http://ocramius.github.io/blog/fast-php-object-to-array-conversion/

上一篇PHP如何从数组中移除空元素
PHP如何随机生成器字符串?下一篇
下一篇PHP如何随机生成器字符串?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号