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

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

提问人:Ben Dauphinee 提问时间:9/1/2014 更新时间:9/1/2014 访问量:205

问:

我正在开发一个配置工具,允许对某些代码进行灵活配置以获取特定的数组元素(在本例中为 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
PHP 数组 关键 变量

评论


答:

0赞 user3942918 9/1/2014 #1

变量变量动态设置变量名称。括号不是变量名称的一部分。 是一个变量,是你访问数组元素的方式。$_POST$_POST['a']a$_POST