如何访问命名空间的php对象?

时间:2016-04-06 08:12:24

标签: php arrays object namespaces

我有一个看起来像这样的php对象:

Array
(
    [0] => Google\API\Response\Model\Goog Object
        (
            [rp:Google\API\Response\Model\Goog:private] => 
            [sn:Google\API\Response\Model\Goog:private] => aaazzz999
            [id:Google\API\Response\Model\Goog:private] => 105735459918379875
            [c_id:Google\API\Response\Model\Goog:private] => 
            [st:Google\API\Response\Model\Goog:private] => 1
            [m:Google\API\Response\Model\Goog:private] => 0
            [sts:Google\API\Response\Model\Goog:private] => 1459918379875
            [ts:Google\API\Response\Model\Goog:private] => 1459918379875
            [t:Google\API\Response\Model\Goog:private] => 3
            [replayed:Google\API\Response\Model\Goog:private] => 
            [zipped:Google\API\Response\Model\Goog:private] => 
            [broadcast:Google\API\Response\Model\Goog:private] => 
            [broadcast_media_url:Google\API\Response\Model\Goog:private] => 
        )

)

如何访问[sn:Google \ API \ Response \ Model \ Goog:private]数组值?

1 个答案:

答案 0 :(得分:1)

问题不是命名空间,而是属性具有私有可见性。这意味着只有内部方法才能访问它们。为了从外部访问它们,它们需要公众可见性。

一种可能的解决方案是检查Goog的类源并查找可能返回属性值的任何方法。具有私有属性的类通常通过公共方法公开它们,例如:

$value = $myArray[0]->getMediaUrl(); // example showing calling a public method
相关问题