У меня есть объект PHP с атрибутом, имеющим знак доллара ($).
Как получить доступ к содержимому этого атрибута?
Пример :
echo $object->variable; // Ok echo $object->variable$WithDollar; // Syntax error :-(
С переменными переменными :
$myVar = 'variable$WithDollar'; echo $object->$myVar;
С фигурными скобками:
echo $object->{'variable$WithDollar'};
Я предполагаю, что вы хотите получить доступ к свойствам с именами переменных на лету. Для этого попробуйте
echo $object->{"variable".$yourVariable}
Благодаря вашим ответам я только узнал, как я могу это сделать так, как планировал:
echo $object->{'variable$WithDollar'}; // works !
Я был уверен, что раньше я пытался использовать все возможные комбинации.
Вы этого не сделаете.
Знак доллара имеет особое значение в PHP. Хотя можно обойти переменную подстановку в классе / объектах разыменования, которые НИКОГДА не должны делать это.
Не пытайтесь объявлять переменные с литералом '$'.
Если вам приходится иметь дело с беспорядком кого-то – сначала исправьте код, который они написали, чтобы удалить доллары, а затем перейдите и отрубите их пальцы.
C.
Существуют методы отражения, которые также позволяют создавать имена методов и атрибутов, которые могут быть созданы переменными или содержать специальные символы. Вы можете использовать метод ReflectionClass :: getProperty (string $ name).
$object->getProperty('variable$WithDollar');