What does $$ (dollar dollar or double dollar) mean in PHP?
PhpPhp Problem Overview
Example is a variable declaration within a function:
global $$link;
What does $$
mean?
Php Solutions
Solution 1 - Php
A syntax such as $$variable
is called Variable Variable.
For example, if you consider this portion of code :
$real_variable = 'test';
$name = 'real_variable';
echo $$name;
You will get the following output :
test
Here :
$real_variable
contains test$name
contains the name of your variable :'real_variable'
$$name
mean "the variable thas has its name contained in$name
"- Which is
$real_variable
- And has the value
'test'
- Which is
EDIT after @Jhonny's comment :
Doing a $$$
?
Well, the best way to know is to try ;-)
So, let's try this portion of code :
$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 />';
And here's the output I get :
name
real_variable
test
So, I would say that, yes, you can do $$$
;-)
Solution 2 - Php
The inner $ resolves the a variable to a string, and the outer one resolves a variable by that string.
So, consider this example
$inner = "foo";
$outer = "inner";
The variable:
$$outer
would equal the string "foo"
Solution 3 - Php
It's a variable's variable.
<?php
$a = 'hello';
$$a = 'world'; // now makes $hello a variable that holds 'world'
echo "$a ${$a}"; // "hello world"
echo "$a $hello"; // "hello world"
?>
Solution 4 - Php
It creates a dynamic variable name. E.g.
$link = 'foo';
$$link = 'bar'; // -> $foo = 'bar'
echo $foo;
// prints 'bar'
(also known as variable variable)
Solution 5 - Php
I do not want to repeat after others but there is a risk using $$
:)
$a = '1';
$$a = 2; // $1 = 2 :)
So use it with head. :)
Solution 6 - Php
It evaluates the contents of one variable as the name of another. Basically it gives you the variable whose name is stored in $link
.
Solution 7 - Php
this worked for me (enclose in square brackets):
$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;
}