2012-06-23 171 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']) ); –