我需要-
的转义序列或php的减号。该对象具有名称 - 值对,其中名称恰好在2个单词之间具有-
。
我无法使用\
标准转义序列(-
无法记录)。
我可以将名称存储在可以使用的$myvariable
中,但出于好奇,是否可以执行以下操作?
$myobject->myweird-name
由于-
答案 0 :(得分:31)
这就是你需要的:
$myobject->{'myweird-name'};
答案 1 :(得分:7)
如果您需要查找索引,有几种方法可以执行此操作:
// use a variable
$prop = 'my-crazy-property';
$obj->$prop;
// use {}
$obj->{'my-crazy-property'};
// get_object_vars (better with a lot of crazy properties)
$vars = get_object_vars($obj);
$vars['my-crazy-property'];
// you can cast to an array directly
$arr = (array)$obj;
$arr['my-crazy-property'];
如果你需要在一个字符串中工作(这不是你最好的想法,你应该尽可能使用手动连接,因为它更快,解析的字符串是不必要的),那么你应该使用{}基本上逃避整个序列:
$foo = new stdClass();
$foo->{"my-crazy-property"} = 1;
var_dump("my crazy property is {$foo->{"my-crazy-property"}}";
既然你提到这是LinkedIn的API,我相信它可以选择返回XML,它可能更快(也可能更清晰/更清晰)使用XML方法调用而不是使用对象本身。值得深思。