$$(美元或双美元)在PHP中意味着什么?

chi*_*ane 110 php

示例是函数内的变量声明:

global $$link;
Run Code Online (Sandbox Code Playgroud)

什么$$意思?

Pas*_*TIN 168

语法,例如$$variable称为变量变量.


例如,如果您考虑这部分代码:

$real_variable = 'test';
$name = 'real_variable';
echo $$name;
Run Code Online (Sandbox Code Playgroud)

您将获得以下输出:

test
Run Code Online (Sandbox Code Playgroud)


这里 :

  • $real_variable 包含测试
  • $name 包含变量的名称: 'real_variable'
  • $$name表示" 变量thas的名称包含在$name "中
    • 这是 $real_variable
    • 并且有价值 'test'



在@ Jhonny的评论之后编辑:

做一个$$$
嗯,最好的方法就是尝试;-)

那么,让我们试试这部分代码:

$real_variable = 'test';
$name = 'real_variable';
$name_of_name = 'name';

echo $name_of_name . '<br />';
echo $$name_of_name . '<br />';
echo $$$name_of_name . '<br />';
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

name
real_variable
test
Run Code Online (Sandbox Code Playgroud)

所以,我会说,是的,你可以这样做$$$ ;-)

  • 虽然我同意它可能有用,但大多数时候最好还是使用数组. (9认同)
  • @Chaim:是的;;; 除了在某些情况下,需要`{`和`}`*(手册中有一个例子)* (3认同)

Ric*_*ich 23

内部$将变量解析为字符串,外部变量通过该字符串解析变量.

所以,考虑这个例子

$inner = "foo";
$outer = "inner";
Run Code Online (Sandbox Code Playgroud)

变量:

$$outer
Run Code Online (Sandbox Code Playgroud)

将等于字符串"foo"


Ant*_*ney 13

它是变量的变量.

<?php
$a = 'hello';
$$a = 'world'; // now makes $hello a variable that holds 'world'
echo "$a ${$a}"; // "hello world"
echo "$a $hello"; // "hello world"
?>
Run Code Online (Sandbox Code Playgroud)


Fel*_*ing 7

它创建一个动态变量名称.例如

$link = 'foo';
$$link = 'bar';    // -> $foo = 'bar'
echo $foo;
// prints 'bar'
Run Code Online (Sandbox Code Playgroud)

(也称为变量变量)