为什么变量前面有两个$$符号?

时间:2010-11-05 11:33:32

标签: php

  

可能重复:
  what does $$ mean in PHP?

我最近需要对应用程序进行更改并遇到此$pageObject->createPageContent($$templateName);

方法看起来像这样

function createPageContent($page_content_html) {
        $this->page_content = $page_content_html;
    }

我的问题是当我删除变量前面的一个$ sign时,我获得了与double $$不同的结果。为什么还有一个$ sign?这是为了什么目的?

4 个答案:

答案 0 :(得分:7)

$$表示PHP中的variable variable

通过字符串引用已存在的变量是一种简单的方法。

以下是一个例子:

$someVar = 'something';

$varname = 'someVar';

echo $$varname; //something

因此,在您的示例中,$templateName实际上引用了现有变量的名称,因此当您将其添加到另一个$时,PHP将获取该值那个变量。这是一个非常强大的语言功能恕我直言。

答案 1 :(得分:4)

$$表示变量变量。 $templateName的结果用作您要引用的变量名称。为了进一步说明,它也可以写成

${$templateName}

例如,

$templateName = "hello";
$hello = "world";

echo $$templateName;
//-> "world"

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

答案 2 :(得分:1)

当你使用两个$$时,它意味着变量的名称实际上是可验证的。

$animal = "cow";

$cow = "moo";

echo $$animal;

//Prints 'moo'

答案 3 :(得分:0)

这样您就可以动态地处理变量。

perfect description to be found at php.net