我需要一个转义序列-或PHP的减号.该对象具有名称 - 值对,其中名称恰好-在2个单词之间.
我无法使用\标准的转义序列(-无论如何都没有记录).
我可以将名称存储在$myvariable可以使用的名称中,但出于好奇,是否可以执行以下操作?
$myobject->myweird-name
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误,因为 -
如果您需要查找索引,有几种方法可以执行此操作:
// 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'];
Run Code Online (Sandbox Code Playgroud)
如果你需要在字符串中工作(这不是你最好的想法,你应该尽可能使用手动连接,因为它更快,解析的字符串是不必要的),那么你应该使用{}基本上逃避整个序列:
$foo = new stdClass();
$foo->{"my-crazy-property"} = 1;
var_dump("my crazy property is {$foo->{"my-crazy-property"}}";
Run Code Online (Sandbox Code Playgroud)
既然你提到这是LinkedIn的API,我相信它可以选择返回XML,它可能更快(也可能更清晰/更清晰)使用XML方法调用而不是使用对象本身.值得深思.