3

假设我有以下内容:

$foo = "bar";
$bar = "hello";

然后字符串“hello”可以作为以下任一方式回显到标准输出:

echo $$foo;

或者

echo ${$foo};

我想知道这两个陈述之间一般有什么区别。也就是说,在上面显示的第二种语法中,计算变量名称周围的大括号的目的是什么?

4

2 回答 2

8

使用 ${$foo} 的唯一原因是能够将 $foo 与其他东西结合起来,例如:

$idx = 4;
$bar3 = 20;
$bar4 = 7;
echo ${$foo.$idx}

这将返回 $bar4 中的值,因为 $idx 值 4;

于 2012-07-10T17:56:34.613 回答
3

两者在您的示例中所做的没有区别。

第一个示例是概念称为变量变量,而第二个大括号示例允许您根据指定值生成动态变量。

您可能还想结帐:

于 2012-07-10T17:57:03.660 回答