PHP:无法使用变量进行多维数组访问


PHP: Unable to use variable variables for multi-dimensional array access

我正在开发一个配置工具,该工具允许对一些代码进行灵活的配置,以获取特定的数组元素(在本例中为POST vars)。(我知道这个问题可以通过递归调用来解决,但遇到了一个我不理解的好奇心。

我遇到的问题是可变变量没有做我期望能做的事情

当逻辑上说我应该能够做到的时候,有人能解释为什么我似乎不能做到这一点吗?

首次测试

$_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
变量变量动态设置变量名称。括号不是变量名称的一部分。$_POST是一个变量,$_POST['a']是访问$_POST数组的a元素的方式。