Я не думаю, что есть что-то новое с этим синтаксисом:
$a = 10;
var_dump(${"a"});
Работает просто отлично; -)
Ваша проблема, вероятно, связана с тем, что раньше register_globals
было включено (по умолчанию, если PHP <= 4.something) </em>, и теперь отключено - и это это хорошо для безопасности!
Если для register_globals задано значение On, любая переменная в $_REQUEST
автоматически вводится как переменная в вашем приложении - ну, на самом деле, это зависит от параметра конфигурации variables_order
, но в этот почти всегда входят Get, Post и Cookie, по крайней мере.
Например, если есть переменная типа $_GET['my_var']
, у вас также будет переменная $my_var
... И к ней также можно получить доступ с помощью синтаксиса ${'my_var'}
Учитывая, что register_globals
по умолчанию Off
, так как что-то вроде PHP 4.2, и должно исчезнуть в PHP 6 (если я правильно помню) , я бы посоветовал не активировать его ... по крайней мере, если у вас есть время, необходимое для исправления / проверки кода ...