Переменная переменная, построение переменной массива - PullRequest
0 голосов
/ 28 марта 2012

Я хочу иметь возможность передать строку ("['parent_array'] ['child_array']") в функцию, которая затем вытягивает эту строку и "my_array" в начало и затем создает переменную переменную.

Затем внутри функции я делаю print_r ($$ string) и ничего не выходит. Посмотрите код ниже для лучшего объяснения.

// DOES NOT WORK
$string1 = "my_array['parent_array']['child_array']";
print_r($$string1); //prints nothing.

// WORKS
$string2 = "test";
$test = "This will be printed!";
print_r($$string2); //prints "This will be printed!

// WORKS
print_r($my_array['parent_array']['child_array']);

1 Ответ

0 голосов
/ 28 марта 2012

Переменные - это уродливый, уродливый хак.

Использование eval .

Пример:

$expr = "\$my_array['parent_array']['child_array']";
$val = 'not assigned';
eval("\$val = $expr;");
print_r($val);

Но, пожалуйста, следуйте их предупреждениям об опасности подтверждения предоставленного пользователем кода.

Обновлено: с примером

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