访问以整数值开头的stdClass变量名

时间:2011-06-11 21:03:40

标签: php arrays json

  

可能重复:
  How do I access this object property?

请求中返回的数据是(JSON):

stdClass Object
(
[USD] => stdClass Object
    (
        [7d] => 23.3414

我在打电话:

json_decode(...);

尝试通过以下方式访问它:

echo $json->USD->7d;

但是失败了,因为变量名不能以整数开头。 PHP中是否有任何语法可以访问它?

否则我会通过这样做来解决这个问题:

$set = (array) $json->USD;
echo $set['7d'];

3 个答案:

答案 0 :(得分:6)

这是有效的:

$name = '7bar';
$o->$name = 'foo';
echo $o->{'7bar'};

正如您在示例中看到的,有两种不同的方法来访问具有不常见名称的变量。

答案 1 :(得分:5)

json_decode($var, true);

将对象设置为一个关联数组,而不是你的答案,但保存了类型转换。

答案 2 :(得分:0)

为什么不将变量名从7d更改为类似d7的?是否有理由进行7d参考?