Что означает $$ (доллар или двойной доллар) в PHP?

Пример – объявление переменной внутри функции:

global $$link; 

Что означает $$ ?

Синтаксис, такой как $$variable называется Variable Variable .

Например, если вы рассматриваете эту часть кода:

 $real_variable = 'test'; $name = 'real_variable'; echo $$name; 

Вы получите следующий результат:

 test 

Вот :

  • $real_variable содержит тест
  • $name содержит имя вашей переменной: 'real_variable'
  • $$name означает " переменная thas имеет свое имя, содержащееся в $name "
    • Что такое $real_variable
    • И имеет значение 'test'


EDIT после комментария @ 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 

Итак, я бы сказал, что да, вы можете сделать $$$ 😉

Внутренний $ разрешает переменную для строки, а внешняя – разрешает переменную этой строкой.

Итак, рассмотрим этот пример

 $inner = "foo"; $outer = "inner"; 

Переменная:

 $$outer 

будет равно строке "foo"

Это переменная переменной .

 <?php $a = 'hello'; $$a = 'world'; // now makes $hello a variable that holds 'world' echo "$a ${$a}"; // "hello world" echo "$a $hello"; // "hello world" ?> 

Он создает имя динамической переменной. Например

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

(также известный как переменная переменная )

Я не хочу повторять за другими, но существует риск использования $$ 🙂

 $a = '1'; $$a = 2; // $1 = 2 :) 

Поэтому используйте его с головой. 🙂

global $$link; означает ужасный дизайн приложения.
Тот, кто написал это, понятия не имеет о поддержке кода

Он оценивает содержимое одной переменной как имя другой. В основном это дает вам переменную, имя которой хранится в $link .