2014-09-10 155 views
0

我試圖獲取包含在另一個對象中包含的對象內的數組的屬性。從包含在另一個對象中包含的對象中的數組獲取屬性值

以下代碼是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

你在哪裏試圖使用它,哪些不起作用?我的意思是,從AdapterChain類中,你可以$ this-> event-> params ['identity']。它受到保護,所以如果你有一個AdapterChain類的實例,你將無法訪問它 – Hammerstein 2014-09-10 17:41:45

回答

0

要訪問一個對象的屬性使用的語法是->,如object->property。要訪問給定的屬性,它的可見性必須是public而不是您的示例,其中屬性具有protected可見性。

要訪問identity您需要運行$object->event->params['identity'],您還需要定義getter函數或更改您的屬性對公衆的可見性。

吸氣函數的例子

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

或單個屬性

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

然後使用的語法將被(假設你定義一個getter函數爲params以及)

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

@PaulKendal歡迎您。 – 2014-09-13 09:15:50

相關問題