PHP / JSON - 当属性名称为数字时,回显stdClass对象

时间:2015-11-09 03:40:05

标签: php json stdclass

我使用json_decode将JSON输出存储为stdClass对象。

理想情况下,我想回显直方图对象的属性名称和值。

我试过

echo $obj->histogram->20000();

但它似乎无法识别20000,因为它是一个数字。也试过'20000'。

JSON代码:

{
  "location": {
    "__CLASS__": "Adzuna::API::Response::Location",
    "display_name": "Melbourne, Melbourne Region",
    "area": [
      "Australia",
      "Victoria",
      "Melbourne Region",
      "Melbourne"
    ]
  },
  "__CLASS__": "Adzuna::API::Response::SalaryHistogram",
  "histogram": {
    "20000": 2,
    "40000": 36,
    "60000": 95,
    "80000": 53,
    "100000": 27,
    "120000": 9,
    "140000": 6
  }
}

1 个答案:

答案 0 :(得分:1)

在PHP中,变量和类成员可以几乎任何,但是在PHP代码中 它们必须基本上以普通的ASCII字母字符或下划线开头(更具体地说[a-zA-Z_\x7f-\xff],但实际上没有人使用该范围内的所有字符。)

要访问使用$var格式无法访问的变量,您必须使用变量

$name = "1twøThré3";
$value = $$name;

这是"正常"使用变量变量的方法。另一种方法是将名称直接传递给变量标识符:

$value = ${"1twøThré3"}

这同样适用于对象成员:

$value = $obj->{"1twøThré3"};