$$ доллар в ПХП
Встретил вот такой кусок кода, что это означает, интересно в основном двойной знак доллара.
foreach($vars as $k=>$v){ $$k = $v; //что здесь произошло, и что это за двойной бакс? } |
Проще всего пояснить на примере.
$a = 5; $variable = 'a'; echo $$variable; // 5Т.е. это обращение к переменной, чье значение хранится в variable в виде строки. |
А почему пятёрка в результате на экран?
Смотрите. Переменная variable была равна значению строковому а. А как эта буква маленькая а, превратилась в переменную a в объявленную раннее? |
Если написать просто echo $clown; Хотя такой переменной не существует ничего на экран не выведется и ошибок не выдаст. Почему?
|
Цитата:
|
Цитата:
читай лучше учебник по рнр |
РЕбята, заработало у меня.
$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 |
*рука-лицо*
|
Цитата:
|
В чём прикол такого использования. Даёт возможность значение использовать в качестве названия переменной, в этом основной прикол?
|
Цитата:
может еще заодно отказаться от eval? Цитата:
хотя на практике такое использование редко, но иногда оно удобно |
Скажите, а в пхп такие же указатели как в С++ есть?
Ну например типа такого вывода. Код:
#include <iostream> Код:
0012FF60 100 Вот это как в моём случаи 0012FF60 ? |
нет, в PHP нету указателей.
зато есть ссылки, и для него вполне хватает |
Смотрите, в этом коде:
class Proba{ var $name; function d(){ $e = 'Привет мир!'; echo 'Результат = '.$this->name = 8; //УКАЗАТЕЛЬ this } //УКазатель но не ссылка ведь же //Значит есть указатели в ПХП? } $object = new Proba; $object->d(); Теперь глянул вот сюда: http://php.su/learnphp/phpoo/?classes Прочитал такое: Код:
Чтобы получить доступ к членам класса внутри класса, необходимо использовать указатель $this, |
Цитата:
Цитата:
читайте официальную документацию на офсайте PHP например раздел посвященный ссылкам, да) http://www.php.net/manual/en/language.references.php а также кусок, где упоминается про $this в данном контексте http://www.php.net/manual/en/languag...ences.spot.php |
Цитата:
$foo = 1; $bar =& $foo; unset($foo); Д.Гутманс писал о том, что указатели - анархизм и использование их не желательно... |
Цитата:
|
во всей литературе что читал по рнр-авторы называли это указателем.хотя какие авторы такое и название)
|
Ссылка ссылается на значение, указатель указывает на область в памяти. PHP не работает с памятью, там не может быть указателей.
|
Цитата:
не согласен. огромное количество встроенных функций базируется на передаче параметров по ссылке. и это реально полезная вещь хотя я что-то читал нехорошее про ссылки, что это противоречит парадигме(функция не должны изменять состояние контекста исполнения, и возвращать результат только через return). в качестве замены параметров по ссылке предлагалось использовать объекты, или же возвращать структуры. но как по мне, это излишняя борьба за чистоту кода. в PHP же depricated являются подобные конструкции: $a = & new A(); наврено потому что смысла в ссылке тут ноль для современного PHP |
Цитата:
int bar = 10; int foo = &bar; int baz = *foo; cout << baz << endl; //10 Терминологическая путаница не более того. |
Я повторюсь
Цитата:
|
Цитата:
|
$$ это вообще не ссылка в PHP, вы тут куда-то не туда пошли.
|
Цитата:
|
|
Цитата:
|
Цитата:
|
а не застали совдеповские адаптации языков-типа рапира совдеп адаптация бейсика и т.д?
|
нет, не застал.
|
по сравнению с этим
|
Часовой пояс GMT +3, время: 04:52. |