2012-06-23 212 views
1

需要一些快速建議我想訪問一個對象數組,但我掙扎着,請看下面的數組。它開始的對象我通常會用戶$結果 - > _消息 - >令牌,但它不工作我拖網谷歌和本網站,但無法訪問令牌。訪問PHP對象數組

object(Zend_Auth_Result)#76 (3) { 
["_code":protected] => int(1) 
["_identity":protected] => string(9) "3232323233" 
["_messages":protected] => array(2) { 
    ["user"] => object(stdClass)#71 (13) { 
     ["id"] => string(9) "232323332" 
     ["name"] => string(14) "John Smith" 
     ["first_name"] => string(5) "John" 
     ["last_name"] => string(8) "Smith" 
     ["link"] => string(41) "http://www.facebook.com/" 
     ["username"] => string(17) "john.smith" 
     ["location"] => object(stdClass)#68 (2) { 
     ["id"] => string(0) "" 
     ["name"] => NULL 
     }  
     ["email"] => string(22) "[email protected]" 
     ["timezone"] => int(1) 
     ["locale"] => string(5) "en_US" 
     ["verified"] => bool(true) 
     ["updated_time"] => string(24) "2012-06-21T13:57:12+0000" 
    } 
    ["token"] => string(109) "AAAGIFdDivU4BAMoxyHT3bqY8eBGhnWo9YKM1szHZAnWgY10AIBgxz9LeNCeA2HV9Yhkp8uM5Aq0WR39ZBdcnOa4MxXVI22rnmFKNbYdQZDZD" 
    } 
} 

任何建議任何機構?

乾杯

Ĵ

+2

這不是一個陣列,它的類型的對象'Zend_Auth_Result'。 – Jon

回答

3

ZF Reference Guide on Naming Conventions:

例如變量聲明爲「private」或「protected」的,第一個字符變量名稱必須是單個下劃線。這是變量名稱中下劃線的唯一可接受的應用。聲明爲「public」的成員變量不應以下劃線開頭。

所以你不能直接從Zend_Auth_Result實例外部訪問_messages,因爲它是protected。你必須使用該屬性的getter。

參見API文檔爲Zend_Auth_Result

$messages = $zendAuthResult->getMessages(); 
$token = $messages['token']; 
+0

通過查看控制器如何獲取用戶信息來管理您的解決方案。工作完美謝謝! –

3

_messages被保護,因此它不可能在從這個(或擴展)類之外的變量調用,檢查是否存在該類的方法來獲取變量數組

+0

謝謝,那麼一點問題! Facebook.php文件返回數組的代碼:return new Zend_Auth_Result(Zend_Auth_Result :: SUCCESS,$ user-> id,array('user'=> $ user,'token'=> $ params ['access_token']) ); –