${$item}是什么意思?



在下面的情况下我无法理解大括号的目的,并且我没有找到关于大括号使用的严肃文档。

请看下面的例子:

 $var = array('a','b','c','d');
 foreach($var as $item){
       ${$item} = array();
 }

我不理解${$item}的意思。

我在foreach循环之前和之后尝试了var_dump,但似乎没有发生任何事情。

任何想法?

创建4个空数组:

$a, $b, $c, $d // arrays now

花括号创建一个与花括号内提供的string名称相同的变量。在您的代码中,它通过从数组中获取字符串创建了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$); 

?>

是的,它创建了4个空数组,你是在运行时创建变量,这就是大括号的用法。以下是大括号使用的示例:php

中的大括号

任何用花括号括起来的内容都将替换变量的值。

那么结束值将是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();

相关内容

  • 没有找到相关文章

最新更新