对象到数组,类型提示不起作用

时间:2017-01-25 17:52:20

标签: php

我从API获得此对象。

object(DotMailer\Api\DataTypes\XsInt)#62 (1) { 
        ["value":"DotMailer\Api\DataTypes\XsInt":private]=> int(16711) 
} 
object(DotMailer\Api\DataTypes\XsInt)#67 (1) { 
        ["value":"DotMailer\Api\DataTypes\XsInt":private]=> int(16722) 
} 
object(DotMailer\Api\DataTypes\XsInt)#73 (1) { 
    ["value":"DotMailer\Api\DataTypes\XsInt":private]=> int(16723) 
}

如何将其转换为数组?

我试过了:

$arr = (array) $apiResponse;

但我只是得到了NULL。

2 个答案:

答案 0 :(得分:1)

对于每个XsInt个对象,您应该只能echo它们。 value属性是私有的,但XsInt有一个返回__toString的{​​{1}}方法。 See the DotMailer API client code here.

所以,对于其中一个对象:

value

或者如果你有这些对象的数组:

echo $theObject;

答案 1 :(得分:0)

如果您有一个对象,则可以使用another key

如果您有一组对象,可以使用array_map

(array) $obj

输出:

class Foo
{
    private $foo;

    public function __construct()
    {
        $this->foo = 1;
    }
}

$foo = [new Foo, new Foo];
$array = array_map(function($item) {
    return (array)$item;
}, $foo);