这里的$ {/ * var * /}做了什么。我无法在任何地方找到任何结果

时间:2013-03-22 10:10:23

标签: php

这是一个非常愚蠢的问题,但对于我的生活,我无法想象我们这是做什么的。从过去的经验来看,如果你不知道那么问或永远保持愚蠢 代码例如

foreach( $arr as $key => $val ) {
    ${$key.'Count'} = 0;
}

提前致谢

3 个答案:

答案 0 :(得分:3)

这是一个variable variable。大括号内的结果字符串用作变量的名称。如果您有以下内容:

$arr = array('foo' => 'bar');

foreach( $arr as $key => $val ) {
    ${$key.'Count'} = 0;
}

现在会有一个变量$fooCount,其值为0

答案 1 :(得分:1)

大括号用于显式设置变量名的结尾。

在您的特定情况下,动态创建变量名称:

${$key.'Count'} // $myKeyCount

它还可用于指定非动态命名变量的结尾:

echo "My string has {$example}00.00 things"; // where I write out a value 100 times bigger

答案 2 :(得分:0)

简单回答:

您可以使用变量名称设置var

$varName = 'test'
${$varName}  = "Hello world!";
echo $test;

将显示

 Hello world!