2014-09-01 4 views
-1

Я работаю над инструментом конфигурации, позволяющим гибкую конфигурацию для некоторого кода для извлечения определенных элементов массива (в этом примере - POST vars). (Я знаю, эта проблема может быть решена с помощью рекурсивного вызова, но столкнулся с любопытством, я не понимаю.)PHP: Невозможно использовать переменные переменные для доступа к многомерному массиву

Проблема я бегу в том, что variable variables не делать то, что я ожидаю, чтобы быть в состоянии делать.

У кого-нибудь есть объяснение, почему я не могу это сделать, когда логика говорит, что я должен уметь?

Первый тест

$_POST['a']['array']['key'] = 10; 

$thisSearchLocation = '_POST[\'a\'][\'array\'][\'key\']'; 

echo $$thisSearchLocation; 

echo $_POST['a']['array']['key']; 

// Expected Output: 1010 
// Actual Output: Notice: Undefined variable: _POST['a']['array']['key'] in test.php10 

Второй тест

В этом тесте, кажется, я создал переменную, используя переменную переменную, которую я могу только доступ к повторным использованием переменной переменной, и нет другой путь.

$_POST['a']['array']['key'] = 10; 

$thisSearchLocation = '_POST[\'a\'][\'array\'][\'key\']'; 

$$thisSearchLocation = 9; 

echo $$thisSearchLocation; 

echo $_POST['a']['array']['key']; 

// Expected Output: 99 
// Actual Output: 910 

ответ

0

Переменные переменные динамически устанавливать variableимена. Скобки не являются частью имени переменной. $_POST - переменная, $_POST['a'] - это то, как вы обращаетесь к элементу a массива $_POST.

Смежные вопросы