Lukeity
Lukeity

Reputation: 77

How to access php object that is namespaced?

I have a php object that looks like this:

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] => 
        )

)

How do I access the [sn:Google\API\Response\Model\Goog:private] array value?

Upvotes: 2

Views: 32

Answers (1)

MrCode
MrCode

Reputation: 64526

The issue is not namespacing but that the properties have private visibility. This means that only internal methods can access them. In order to access them from the outside, they would need public visibility.

A possible solution is to examine the class source for Goog and look for any methods that might return the value of the properties. Classes with private properties typically expose them via public methods, for example something like:

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

Upvotes: 1

Related Questions