假设我有以下内容:
$foo = "bar";
$bar = "hello";
然后字符串"hello"可以作为以下任意一种形式返回到标准输出:
echo $$foo;
或
echo ${$foo};
我想知道这两种说法总的来说有什么不同。也就是说,在计算的变量名周围使用大括号的目的是什么在上面显示的第二个语法中?
使用${$foo}的唯一原因是能够将$foo与其他东西组合,例如:
$idx = 4;
$bar3 = 20;
$bar4 = 7;
echo ${$foo.$idx}
这将返回以$bar4为单位的值,因为$idx值4;
在您的示例中,两者的作用没有区别。
第一个例子是被称为变量的概念,而第二个大括号例子允许您根据指定的值生成动态变量 您可能还想结账: