Как получить доступ к атрибуту объекта PHP, имеющему знак доллара? - PullRequest
13 голосов
/ 19 января 2010

У меня есть объект PHP с атрибутом со знаком доллара ($).

Как получить доступ к содержимому этого атрибута?

Пример:

echo $object->variable; // Ok

echo $object->variable$WithDollar; // Syntax error :-(

Ответы [ 5 ]

40 голосов
/ 19 января 2010
  1. С переменными :

    $myVar = 'variable$WithDollar';
    echo $object->$myVar;
    
  2. С фигурными скобками:

    echo $object->{'variable$WithDollar'};
    
3 голосов
/ 19 января 2010

Благодаря вашим ответам я только что узнал, как я могу сделать это так, как я планировал:

echo $object->{'variable$WithDollar'}; // works !

Я был почти уверен, что пробовал все возможные комбинации раньше.

3 голосов
/ 19 января 2010

Я предполагаю, что вы хотите получить доступ к свойствам с именами переменных на лету. Для этого попробуйте

echo $object->{"variable".$yourVariable}
1 голос
/ 19 января 2010

Вы не.

Знак доллара имеет особое значение в PHP. Хотя в методе разыменования свойств класса / объекта можно обойти подстановку переменных, НИКОГДА этого не следует делать.

Не пытайтесь объявлять переменные с помощью литерала '$'.

Если вам приходится иметь дело с чьим-то беспорядком - сначала исправьте код, который они написали, чтобы убрать доллары, затем идите и отрубите им пальцы.

С

1 голос
/ 19 января 2010

Существуют методы отражения, которые также позволяют создавать имена методов и атрибутов, которые могут быть созданы переменными или содержать специальные символы. Вы можете использовать метод ReflectionClass :: getProperty (string $ name).

$object->getProperty('variable$WithDollar');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...