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


PHP: using variable value as variable name: curious about syntax issue

假设我有以下内容:

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

然后字符串"hello"可以作为以下任意一种形式返回到标准输出:

echo $$foo;

echo ${$foo};

我想知道这两种说法总的来说有什么不同。也就是说,在计算的变量名周围使用大括号的目的是什么在上面显示的第二个语法中?

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

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

这将返回以$bar4为单位的值,因为$idx值4;

在您的示例中,两者的作用没有区别。

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

您可能还想结账:

  • PHP变量名称:卷发疯狂
  • 可访问性和动态变量名称