Ответ 1
-
$myVar = 'variable$WithDollar'; echo $object->$myVar;
-
С фигурными скобками:
echo $object->{'variable$WithDollar'};
У меня есть объект 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 !
Я был уверен, что я пробовал каждую возможную комбинацию раньше.
Существуют методы отражения, которые также позволяют создавать имена методов и атрибутов, которые могут быть созданы переменными или содержать специальные символы. Вы можете использовать метод ReflectionClass:: getProperty (string $name).
$object->getProperty('variable$WithDollar');
Нет.
Знак доллара имеет особое значение в PHP. Хотя можно обойти переменную подстановку в классе/свойствах разыменования, которые НИКОГДА не должны делать это.
Не пытайтесь объявлять переменные с литералом '$'.
Если вам приходится иметь дело с чьим-то беспорядком - сначала исправьте код, который они написали, чтобы удалить доллары, затем пойдите и отрубите их пальцы.
С.