访问PHP对象数组

时间:2012-06-23 11:20:17

标签: php arrays zend-framework

需要一些快速建议我试图访问一个对象数组,但我很挣扎,请看下面的数组。它开始一个我通常会用户$ result-> _messages->令牌的对象,但它不起作用我已经搜索谷歌和这个网站,但无法访问该令牌。

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) "john@doe.com"
      ["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 个答案:

答案 0 :(得分:3)

_messages受到保护,因此无法从此(或扩展)类外部调用该变量,检查类是否存在方法以获取数组中的变量

答案 1 :(得分:3)

来自ZF Reference Guide on Naming Conventions:

  

例如,使用“private”或“protected”修饰符声明的变量,变量名称的第一个字符必须是单个下划线。这是变量名中唯一可接受的下划线应用程序。声明为“public”的成员变量绝不应以下划线开头。

因此,您无法直接从_messages实例外部访问Zend_Auth_Result,因为它是protected。你必须使用该属性的getter。

请参阅Zend_Auth_Result

的API文档
$messages = $zendAuthResult->getMessages();
$token = $messages['token'];