PHP->变量vars-数组列

时间:2019-06-11 09:26:39

标签: php arrays

我有一个函数,可以接收不限数量的参数。 (我为此使用func_get_args)

示例:function generate($one, $two, $three, ...)

每个参数代表另一个数组中的一列(我们称之为$array)。

我想接收$array[$one][$two][$three]上另一个数组的值

这意味着"[]"的数量是无限的

我试图为此在var中生成一个var。

<?php

  $ron = array("sir" => "yes");
  $name = 'ron["sir"]';
  echo var_dump(${$name});
?>

我的结果:

  

注意:未定义变量:ron [“ sir”] in   C:\ Users \ ronr \ Desktop \ xampp \ htdocs \ lol.php,第5行为空

2 个答案:

答案 0 :(得分:1)

实际上,错误是正确的,您正在定义一个名为ron["sir"]的变量,如下所示:

${'ron["sir"]'} = 'foobar';
echo ${'ron["sir"]'};

。要在sir数组中显示$ron的值,应为:

$ron = array("sir" => "yes");
$name = 'ron';
var_dump(${$name}["sir"]);

答案 1 :(得分:1)

如果要将args用作数组值的路径,可以尝试以下操作:

$result = $array;
$args = func_get_args();

foreach($args as $arg) {
  $result = $result[$arg];
}

var_dump($result);