PHP帮助 - 只需要一个简单的解释

cac*_*oat 1 php

好吧,我试图理解这个PHP代码是如何工作的.

<?php
$test = "success";
$primary = "test";
$id = ${$primary};
echo $id;
?>
Run Code Online (Sandbox Code Playgroud)

我知道输出是"成功"但我不明白它是如何工作的.

到目前为止我所理解的:

test变量有字符串"success",主变量有字符串"test",'id'变量有列表中第一个变量的字符串(测试变量),在'id'变量中打印字符串.

我很困惑,因为我不知道主要变量在id变量中的大括号中做了什么.

一个简单的解释将不胜感激.

Nig*_*cat 6

这是一个称为变量变量的概念.

这意味着在运行时,如果存在多个变量指示符$,PHP将尝试以级联方式关联它们.

例如,请执行以下操作:

$a = "b";
$b = "c";
$c = "d";
echo $$$a;
Run Code Online (Sandbox Code Playgroud)

PHP将系统地通过echo语句来确定实际值是什么,如下:

  • $$$a相当于$$("b")(因为$a"b")
  • ...相当于$("c")(因为$b"c")
  • ...这最终相当于 "d"

在您的示例中,您将获得一个变量赋值,实际上就像是${$a}.在PHP中,大括号用于隔离字符串中的变量,但可以单独使用它们来明确表示变量,因此在这种情况下${$a}完全等效$$a.