PHP:使用变量值作为变量名:对语法问题很好奇

Joh*_*che 3 php

假设我有以下内容:

$foo = "bar";
$bar = "hello";
Run Code Online (Sandbox Code Playgroud)

然后字符串"hello"可以回显为标准输出:

echo $$foo;
Run Code Online (Sandbox Code Playgroud)

要么

echo ${$foo};
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*lin 8

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

$idx = 4;
$bar3 = 20;
$bar4 = 7;
echo ${$foo.$idx}
Run Code Online (Sandbox Code Playgroud)

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