我试图获取一个数组的属性,该数组包含在另一个对象中包含的对象中。
以下代码是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)
答案 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'];