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


PHP / JSON - echo stdClass object when property name is number

我已经使用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
  }
}

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

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

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

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

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

这同样适用于对象成员:

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