好吧,我试图理解这个PHP代码是如何工作的.
<?php
$test = "success";
$primary = "test";
$id = ${$primary};
echo $id;
?>
Run Code Online (Sandbox Code Playgroud)
我知道输出是"成功"但我不明白它是如何工作的.
到目前为止我所理解的:
test变量有字符串"success",主变量有字符串"test",'id'变量有列表中第一个变量的字符串(测试变量),在'id'变量中打印字符串.
我很困惑,因为我不知道主要变量在id变量中的大括号中做了什么.
一个简单的解释将不胜感激.
这是一个称为变量变量的概念.
这意味着在运行时,如果存在多个变量指示符$,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.