$$(美元或双美元)在PHP中是什么意思?

$$(美元或双美元)在PHP中是什么意思?,php,Php,示例是函数中的变量声明: global $$link; $$是什么意思?这是一个问题 调用语法,如$$variable 例如,如果考虑这部分代码: $real_variable = 'test'; $name = 'real_variable'; echo $$name; $real_variable = 'test'; $name = 'real_variable'; $name_of_name = 'name'; echo $name_of_name . '<br />'

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

global $$link;
$$
是什么意思?

这是一个问题


调用语法,如
$$variable


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

$real_variable = 'test';
$name = 'real_variable';
echo $$name;
$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 />';
您将获得以下输出:

test

在这里:

  • $real\u变量
    包含测试
  • $name
    包含变量名:
    'real\u variable'
  • $$name
    表示“变量thas的名称包含在
    $name
    中”
    • 哪个是
      $real\u变量
    • 并且具有值
      'test'


在@Jhonny的评论后编辑:

正在执行
$$$

好吧,知道的最好方法就是尝试;-)

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

$real_variable = 'test';
$name = 'real_variable';
echo $$name;
$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 />';

所以,我想说,是的,你可以做
$$$
;-)

它将一个变量的内容计算为另一个变量的名称。基本上,它提供了一个变量,其名称存储在
$link

中。内部的$将变量解析为字符串,外部的$将变量解析为该字符串

所以,考虑这个例子

$inner = "foo";
$outer = "inner";
变量:

$$outer

将等于字符串“foo”

它创建了一个动态变量名。例如

$link = 'foo';
$$link = 'bar';    // -> $foo = 'bar'
echo $foo;
// prints 'bar'

(也称为)

我不想在别人之后重复,但使用
$$
:)会有风险

因此,将其与头部配合使用。:)

这对我有用(用方括号括起来):


(参考)它显示维护系统将获得多少$$$)(相关)这是一个基于名称的撤销引用。类似于Bash(related)中的
${$link}
,虽然我同意它是有用的,但大多数时候还是最好使用数组。那么这和使用${$value}是一样的吗?@Chaim:是的;;除此之外,在某些情况下,
{
}
是必需的(手册中有一个例子),即使接受的anwser要广泛得多(包括测试用例)。这个解释对我来说更清楚了
$a  = '1';
$$a =  2; // $1 = 2 :)
$aInputsAlias = [
        'convocatoria'   => 'even_id',
        'plan'           => 'acev_id',
        'gasto_elegible' => 'nivel1',
        'rubro'          => 'nivel2',
        'grupo'          => 'nivel3',
    ];

    /* Manejo de los filtros */

    foreach(array_keys($aInputsAlias) as $field)
    {
        $key = $aInputsAlias[$field];

        ${$aInputsAlias[$field]} = $this->request->query($field) ? $this->request->query($field) : NULL;
    }