Я работаю над инструментом конфигурации, позволяющим гибкую конфигурацию для некоторого кода для извлечения определенных элементов массива (в этом примере - 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