Мне нужна escape-последовательность для -
или знак минус для php. У объекта есть пара имен и значений, где имя имеет значение -
между двумя словами.
Я не могу этого сделать, используя стандартную escape-последовательность ( -
не документируется).
Я могу сохранить имя в $myvariable
которое можно использовать, но из любопытства можно сделать следующее?
$myobject->myweird-name
Это дает ошибку из-за -
Это то, что вам нужно:
$myobject->{'myweird-name'};
Если вам нужно найти индекс, есть несколько способов сделать это:
// 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"}}";
Поскольку вы упомянули, что это API LinkedIn, который, я считаю, имеет возможность возврата XML, может быть быстрее (и, возможно, более чистым / понятным) использовать вызовы метода XML и не использовать сами объекты. Пища для размышлений.