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

mr-*_*-sk 1 php arrays json

可能重复:
如何访问此对象属性?

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

stdClass Object
(
[USD] => stdClass Object
    (
        [7d] => 23.3414
Run Code Online (Sandbox Code Playgroud)

我打电话给:

json_decode(...);
Run Code Online (Sandbox Code Playgroud)

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

echo $json->USD->7d;
Run Code Online (Sandbox Code Playgroud)

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

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

$set = (array) $json->USD;
echo $set['7d'];
Run Code Online (Sandbox Code Playgroud)

flo*_*ori 7

这是有效的:

$name = '7bar';
$o->$name = 'foo';
echo $o->{'7bar'};
Run Code Online (Sandbox Code Playgroud)

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


Cup*_*ups 5

json_decode($var, true);
Run Code Online (Sandbox Code Playgroud)

将对象设置为关联数组,而不是您的答案,但保存了类型转换调用.