1

オブジェクト配列にアクセスしようとしていますが、苦労しています。以下の配列を参照してください。通常は $result->_messages->token を使用するオブジェクトから開始しますが、Google とこのサイトをトロールしましたが、トークンにアクセスできません。

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"
    }
}

何かアドバイスはありますか?

乾杯

J

4

2 に答える 2

3

_messages は保護されているため、この (または拡張された) クラスの外からその変数を呼び出すことはできません。クラスが配列内の変数を取得するためのメソッドが存在するかどうかを確認してください。

于 2012-06-23T11:22:23.840 に答える
3

命名規則に関する ZF リファレンス ガイドから:

「private」または「protected」修飾子で宣言されたインスタンス変数の場合、変数名の最初の文字は単一のアンダースコアでなければなりません。これは、変数名でアンダースコアを使用できる唯一の適用方法です。"public" と宣言されたメンバー変数は、アンダースコアで開始しないでください。

そのため、インスタンス_messagesの外部から直接アクセスすることはできません。そのプロパティにはゲッターを使用する必要があります。Zend_Auth_Resultprotected

の API ドキュメントを参照してください。Zend_Auth_Result

$messages = $zendAuthResult->getMessages();
$token = $messages['token'];
于 2012-06-23T11:40:27.260 に答える