例如,函数中的变量声明:
global $$link;
$$是什么意思?
$$
是 变量的变量。
<?php $a = 'hello'; $$a = 'world'; // now makes $hello a variable that holds 'world' echo "$a ${$a}"; // "hello world" echo "$a $hello"; // "hello world" ?>
像 $$variable这样的语法称为 变量 强 >。
$$variable
例如,如果考虑代码的这一部分:
$real_variable = 'test'; $name = 'real_variable'; echo $$name;
您将得到以下输出:
test
这里:
$real_variable
'test'
$name
'real_variable'
$$name
编辑@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 />';
这是我得到的输出:
name real_variable test
所以,我会说,是的,你可以做 $$$; -)
它将一个变量的内容作为另一个变量的名称计算。基本上,它给出了名称存储在 $link中的变量。
$link
内部 $将变量解析为字符串,而外部 $则通过该字符串解析变量。
考虑一下这个例子
$inner = "foo"; $outer = "inner";
变量:
$$outer
将等于字符串“ foo”
它创建一个动态变量名。
$link = 'foo'; $$link = 'bar'; // -> $foo = 'bar' echo $foo; // prints 'bar'
(亦称 可变变量)
我不想重复后,其他人,但有一个使用 $$的风险:)
$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; }