提问人:alesdario 提问时间:7/27/2011 最后编辑:mickmackusaalesdario 更新时间:4/28/2023 访问量:182
${$item} 是什么意思?
What does ${$item} mean?
问:
在下面的情况下,我无法理解大括号的目标,也没有找到有关大括号使用的严肃文档。
请参阅以下示例:
$var = array('a','b','c','d');
foreach($var as $item){
${$item} = array();
}
我不明白是什么意思。${$item}
我尝试过 foreach 循环之前和之后,但似乎什么也没发生。var_dump
有什么想法吗?
答:
11赞
Arthur Halma
7/27/2011
#1
它创建 4 个空数组:
$a, $b, $c, $d // arrays now
评论
0赞
alesdario
7/27/2011
哦,谢谢。让我问你一个问题。你认为这是一个好的做法吗?这似乎是“黑暗编程”
3赞
KingCrunch
7/27/2011
@alesdario:同时,它被视为“不良做法”,但在某些(次要)情况下,它可能会使事情变得更容易,或者类似。事实上,我从来没有用过它。
2赞
DhruvPathak
7/27/2011
#2
大括号创建一个与大括号内提供的字符串同名的变量。 在代码中,它通过从数组中获取字符串来创建 4 个新变量 $a,$b,$c,$d $var .
下面是一个示例,用于查看代码中创建的变量的差异:http://codepad.org/E2619ufe
<?php
$var = array('a','b','c','d');
$currentState = get_defined_vars();
foreach($var as $item){
${$item} = array();
}
$newState = get_defined_vars();
$newVariables = array_diff(array_keys($newState),array_keys($currentState));
var_dump($newVariables);
?>
以下是大括号的用法示例: http://codepad.org/KeE75iNP
<?php
${'myVar'} = 12345;
var_dump($myVar);
/* also helpful when the variable name contains $ due to some reason */
${'theCurrency$'} = 4000;
var_dump(${'theCurrency$'});
/* uncomment line below, it will raise syntax error */
//var_dump($theCurrency$);
?>
0赞
iskandarm
7/27/2011
#3
是的,它创建了 4 个空数组,您正在运行时创建变量,这就是大括号的用法。以下是大括号的用法示例: PHP中的大括号
0赞
Rads
12/12/2013
#4
您放在大括号中的任何内容都将替换变量的值。
因此,最终值将是 4 个空数组
${item} will become $a, ie: $a = array();
${item} will become $b, ie: $b = array();
${item} will become $c, ie: $c = array();
${item} will become $d, ie: $d = array();
上一个:${$item} 是什么意思?
下一个:变量的实际用途是什么?
评论