提问人:Julian 提问时间:7/29/2015 最后编辑:Julian 更新时间:7/29/2015 访问量:112
数组的变量变量
Variable variable for array
问:
我定义了一个数组。我想通过使用变量变量来获取此值。我试过这个,但没有成功:$array[1][1][test]="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";
echo ${$var1}{$var2}{$var3};
输出为 。null
答:
0赞
Javi
7/29/2015
#1
我不明白你的问题
如果你得到 var 试试这个:
echo $array[1][1][test];
“更动态”:
$i = 1;
$x = 'test';
echo $array[$i][$i][$x];
评论
1赞
vhu
7/29/2015
OP 要求使用变量变量的解决方案。
0赞
vhu
7/29/2015
#2
PHP手册没有太彻底地介绍变量-变量数组索引的使用,但注释确实提到它们并不像你所发现的那样工作。
不过,提供了一些解决方法:
$array[1][1]['test']="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";
$tmp=$var1.$var2.$var3;
eval('echo $'.$tmp.';');
以上结果是预期的“hello world”输出。也就是说,我会避免在任何代码中使用。eval()
不过,手册页上的注释(由 nick 在 customdesigns dot ca 上发布,日期为 2006 年)也提供了可以处理带有索引的变量数组的函数。
下一个:定义变量变量时未定义的变量
评论
echo eval("return \$$var1$var2$var3;")
eval()
eval()
eval()
goto