Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   $$ доллар в ПХП (https://javascript.ru/forum/server/16854-%24%24-dollar-v-pkhp.html)

Kasperskiy 25.04.2011 17:21

$$ доллар в ПХП
 
Встретил вот такой кусок кода, что это означает, интересно в основном двойной знак доллара.

foreach($vars as $k=>$v){
  $$k = $v; //что здесь произошло, и что это за двойной бакс?
}

B@rmaley.e><e 25.04.2011 17:24

Проще всего пояснить на примере.
$a = 5;
$variable = 'a';
echo $$variable; // 5
Т.е. это обращение к переменной, чье значение хранится в variable в виде строки.

Kasperskiy 25.04.2011 17:33

А почему пятёрка в результате на экран?
Смотрите. Переменная variable была равна значению строковому а.
А как эта буква маленькая а, превратилась в переменную a в объявленную раннее?

Kasperskiy 25.04.2011 19:02

Если написать просто echo $clown; Хотя такой переменной не существует ничего на экран не выведется и ошибок не выдаст. Почему?

dmitriymar 25.04.2011 20:01

Цитата:

Сообщение от Kasperskiy
Переменная variable

это указатель на переменную а. а $$variable выведет значение переменной на какую указывает указатель

dmitriymar 25.04.2011 20:03

Цитата:

Сообщение от Kasperskiy
echo $clown;

ну как не существует? упомянув её,ты её инициализировал.
читай лучше учебник по рнр

Kasperskiy 25.04.2011 22:19

РЕбята, заработало у меня.
$a=5;$b='a';$c='b';$d='c';$e='d';$f='e';$g='f';$h='g';$i='h';$j='i';$k='j';$l='k';
$m='l';$n='m';$o='n';$p='o';$q='p';$r='q';$s='r';$t='s';$u='t';$v='u';$w='v';
$x='w';$y='x';$z='y';$variable='z';
echo $$$$$$$$$$$$$$$$$$$$$$$$$$$variable;


Результат на экран 5

Gvozd 25.04.2011 22:21

*рука-лицо*

monolithed 25.04.2011 22:37

Цитата:

Сообщение от Kasperskiy
РЕбята, заработало у меня.

если не ошибаюсь, то указатели в PHP имеют статут depricated и не войдут в PHP6 (если когда-то выйдет)

Kasperskiy 25.04.2011 22:39

В чём прикол такого использования. Даёт возможность значение использовать в качестве названия переменной, в этом основной прикол?


Часовой пояс GMT +3, время: 01:12.