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


PHP help - only need a simple explanation

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

<?php
$test = "success";
$primary = "test";
$id = ${$primary};
echo $id;
?>

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

到目前为止,我所理解的:

测试变量有字符串"成功", 主变量有字符串"test", 'id' 变量具有列表中第一个变量(测试变量)的字符串, 打印"id"变量中的字符串。

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

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

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

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

例如,采用以下内容:

$a = "b";
$b = "c";
$c = "d";
echo $$$a;

PHP 将系统地浏览 echo 语句来确定实际值是什么,如下所示:

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

在您的示例中,您被赋予了一个变量赋值,本质上类似于 ${$a} 。在 PHP 中,大括号用于隔离字符串中的变量,但可以单独用于显式表示变量,因此在这种情况下${$a}完全等同于$$a

$id = ${$primary};

尝试从右到左解析 $primary = 'test'

所以${$primary}现在$test

所以方程变得$id = $test;

$id = $test = success

在其他用户提供的链接上了解有关变量变量的更多信息

这是一个

变量。

$test = "success";
$primary = "test";
//${$primary} means $test here, because value of $primary is "test".
//It is equal to $$primary
$id = ${$primary}; 
echo $id; //Prints "success"

http://php.net/manual/en/language.variables.variable.php