从包含在另一个对象中的对象中包含的数组中获取属性值

时间:2014-09-10 17:39:01

标签: php object

我试图获取一个数组的属性,该数组包含在另一个对象中包含的对象中。

以下代码是var_dump ed对象。我正试图从物业身份中获得价值,即身份' => int 101 ..

我把'身份' => 101 以星号显示,仅供演示之用;但渲染的值没有星号。它是代码最后一行的第4行。

我知道如何从多维数组中获取值;但不确定多维对象

  object(ZfcUser\Authentication\Adapter\AdapterChain)[373]
  protected 'event' => 
    object(ZfcUser\Authentication\Adapter\AdapterChainEvent)[456]
      protected 'name' => string 'authenticate.success' (length=20)
      protected 'target' => 
        &object(ZfcUser\Authentication\Adapter\AdapterChain)[373]
      protected 'params' => 
        array (size=4)
          'request' => 
            object(Zend\Http\PhpEnvironment\Request)[194]
              ...
          **'identity' => int 101**
          'code' => int 1
          'messages' => 
            array (size=1)

1 个答案:

答案 0 :(得分:0)

要访问对象的属性,使用的语法为->,如object->property中所示。要访问给定的属性,其可见性必须为public,而不是您的示例,其中属性具有protected可见性。

要访问identity您需要运行$object->event->params['identity'],您还需要定义一个getter函数或将您的属性的可见性更改为public。

getter函数的一个例子

public function __get($name){
    return $this->$name;
}

或单个属性

public function getEvent(){
    return $this->event;
}

然后使用的语法是(假设您为params定义了一个getter函数)

$object->getEvent()->getProperties()['identity'];