如何轻松访问对象的奇怪名称成员


How do I easily access strangely name members of an object?

简单地考虑一下...

<?php
$phoo = json_decode( '{ "a-b": 2 }');
// causes "PHP Fatal error:  Cannot use object of type stdClass as array";
echo $phoo['a-b'];
// causes PHP Notice:  Use of undefined constant b - assumed 'b'
echo $phoo->a-b;

除了使用 get_object_vars() 或 (array) 之类的东西来转换它之外,还有没有办法访问"a-b"的值?

为了防止-被视为减号运算符,并尝试从属性$phoo->a中减去名为 b 的常量值,您需要这样做

echo $phoo->{'a-b'};

这是因为连字符,这意味着substraction .

尝试

 $photo->{'a-b'}