PHP使用这个' $$ var&#39 ;?是什么意思?

时间:2013-10-07 15:49:56

标签: php variables foreach

我正在尝试学习php,我在foreach循环中看到了这是什么意思? 我理解& $ var它直接引用了对象的内存地址。 但是$$ var意味着什么?究竟是什么?

这是一个例子。

    foreach($this->vars as $key => $value)
    {
        $$key = $value;
        echo "$$Key: " . $$key;
        echo "Key: " . $key;
        echo "<br/>";
        echo "Value: " . $value;
    }

3 个答案:

答案 0 :(得分:5)

你正在看variable variable。 e.g。

// original variable named 'foo'
$foo = "bar";

// reference $foo dynamically by evaluating $x
$x = "foo";
echo $$x; // "bar";
echo ${$x}; // "bar" as well but the {} allows you to perform concatenation

// different version of {} to show a more "complex" operation
$y = "fo";
$z = "o";
echo ${$y . $z}; // "bar" also ("fo" . "o" = "foo")

要显示更符合您问题的示例:

$foo = "foo";
$bar = "bar";
$baz = "baz";

$ary = array('foo' => 'FOO','bar' => 'BAR','baz' => 'BAZ');
foreach ($ary as $key => $value){
  $$key = $value;
}

// end result is:
// $foo = "FOO";
// $bar = "BAR";
// $baz = "BAZ";

答案 1 :(得分:2)

这是一个名为$key的变量。例如, 如果是$k='somevar',那么$$k = $somevar

答案 2 :(得分:1)

变量变量。 var名称包含在$var

如果$key = 'test',那么$$key将评估为名为$test的var。

此外,实际用途很少。大多数情况下阵列会更好。