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.
答案 0 :(得分:3)
你不应该这样做。 var_dump
是一个调试函数,因此它的输出类似于变量的内部表示(不完全是原因) - 它不应该用于任何其他情况而不是调试。
由于您要获取的对象数据是protected,因此您应该使用相应的方法来获取/修改它(请参阅Term
类定义)
答案 1 :(得分:0)
您无法以这种方式访问媒体资源start_date
。如果$term
是数组,但是没有对象,则语法会有效。
对象需要受保护属性start_date
答案 2 :(得分:0)
您的对象$term
没有索引start_date
,它不是数组。此外,属性data
受到保护,因此只能从对象内部访问。
如果从对象中删除protected
标志,则可以像这样访问它:
var_dump($term->data["start_date"]);
这将访问start_date
对象内的数组data
中的索引$term
。
另一种方法是将值的getter函数添加到Term
类。