从var_dump()访问数据

时间:2013-10-01 06:10:55

标签: php

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.

3 个答案:

答案 0 :(得分:3)

你不应该这样做。 var_dump是一个调试函数,因此它的输出类似于变量的内部表示(不完全是原因) - 它不应该用于任何其他情况而不是调试。

由于您要获取的对象数据是protected,因此您应该使用相应的方法来获取/修改它(请参阅Term类定义)

答案 1 :(得分:0)

您无法以这种方式访问​​媒体资源start_date。如果$term是数组,但是没有对象,则语法会有效。

对象需要受保护属性start_date

的getter

答案 2 :(得分:0)

您的对象$term没有索引start_date,它不是数组。此外,属性data受到保护,因此只能从对象内部访问。

如果从对象中删除protected标志,则可以像这样访问它:

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

这将访问start_date对象内的数组data中的索引$term

另一种方法是将值的getter函数添加到Term类。