2
object(Term)#32 (10) {
  ["term_id":protected]=> int(11589)
  ["session_id":protected]=> string(5) "11275"
  ["site_id":protected]=> int(9999999)
  ["data":protected]=> array(62) {
    ["term_id"]=> string(5) "11589"
    ["term_name"]=> string(9) "Full Year"
    ["start_date"]=> string(10) "2013-09-02"
    ["end_date"]=> string(10) "2014-06-14" 
  }
}

このデータを var_dump から取得し、「start_date」にアクセスしたいと考えています。これを行う方法?

まあ言ってみれば

var_dump($term);

やった:

var_dump($term["start_date"]); and I get a NULL.
4

3 に答える 3

4

あなたはそれをすべきではありません。var_dumpはデバッグ関数であるため、出力は変数の内部表現に似ています (正確ではありません)。デバッグ以外の場合には使用しないでください。

取得したいオブジェクト データはprotectedであるため、対応するメソッドを使用してそれを取得/変更する必要があります (Termクラス定義を参照してください) 。

于 2013-10-01T06:15:32.800 に答える
0

その方法ではプロパティにアクセスできませんstart_date。配列であれば構文は機能します$termが、オブジェクトでは機能しません。

オブジェクトには、保護されたプロパティのゲッターが必要ですstart_date

于 2013-10-01T06:16:55.600 に答える
0

オブジェクトに$termは index がありませstart_dateん。配列ではありません。また、プロパティdataは保護されているため、オブジェクト内からのみアクセスできます。

オブジェクトからフラグを削除すると、次のprotectedようにアクセスできるようになります。

var_dump($term->data["start_date"]);

これは、オブジェクト内のstart_date配列のインデックスにアクセスします。data$term

別の方法として、値の getter 関数をTermクラスに追加することもできます。

于 2013-10-01T06:17:02.727 に答える