在PHP中,$a和$$a有什么区别?

12

我的问题出了什么问题?为什么有人给我打-1分? - Jalpesh Patel
因为这是一个重复的问题,而且在另一个帖子中已经得到了很好的回答。下次在提问之前先搜索一下。 - j0k
@j0k:公平地说,“$$”是一个难以搜索的术语。然而,对于一个负投票的标准应该是“没有显示研究努力;不清楚或无用”。我投了负票,因为这个问题没有显示出研究努力。 - Andy E
我在谷歌上搜索了与我的问题相同的内容,但是没有得到很好的答案,所以我来这里问一下……对于我的问题重复,我很抱歉。 - Jalpesh Patel
7个回答

27

$a代表一个变量

$$a代表一个具有$a变量内容的变量

例子:

$test = "hello world";
$a = "test";
echo $$a;

输出结果将会是 hello world


20
如果$a = 'b',则 $$a 就是 $b。这是一个变量变量。它们很不好。应该使用数组代替(数组与变量变量可以实现相同的功能,但更易于维护,并且可以在其上使用数组函数)。

@DhruvThakkar — 这里已经有七个解释,还有六个在重复链接之外。如果你不理解其中任何一个,我不知道如何以一种你能理解的方式来解释它。 - Quentin

6

$variable是一个普通的变量

$$variable获取一个变量的值,并把这个值作为另一个变量的名称

例如:

$var = 'welcome';
echo $var //prints welcome

$$var = 'to stackoverflow';

echo "$var ${$var}"; //prints welcome to stackoverflow
echo "$var $welcome"; //prints welcome to stackoverflow

5

双美元符号是一种强大的方法,可以通过编程方式创建变量并为其赋值。

例如:

<?php

$a = “amount”;
$$a =1000;
echo $amount; //echo’s 1000 on screen

?>

在上面的例子中,您可以看到变量$a存储了值“amount”。当您使用双美元符号($$)时,您间接地引用了$a的值,即amount。
因此,使用类似$$a = 1000;的方式创建变量$amount,并将值1000分配给$amount。这样,您就可以以编程方式创建变量并为其分配值。

4
就像枪是一个让你自己射脚的强大方式一样... - Alnitak

4

$a 是变量 a 的内容,$$a 是在变量名中使用 $a 所表示的变量的内容。

请勿在自己的代码中使用此语法。


3

$$a是一个变量,它的名称在$a中。

假设$a = "foo";,那么$$a将与$foo相同。


2

在PHP中,每个变量都以$开头。

例如,你有一个变量$a = 'var';

那么$$a == $var

这个新变量将以另一个变量的“内容”作为名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接