我正在尝试学习php,我在foreach循环中看到了这是什么意思? 我理解& $ var它直接引用了对象的内存地址。 但是$$ var意味着什么?究竟是什么?
这是一个例子。
foreach($this->vars as $key => $value)
{
$$key = $value;
echo "$$Key: " . $$key;
echo "Key: " . $key;
echo "<br/>";
echo "Value: " . $value;
}
答案 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。
此外,实际用途很少。大多数情况下阵列会更好。