Загадка для PHP-программистов
21/11/2008 13:04 — Sniff
Друзья, вот у нас тут к вам вопрос:
что будет в результате работы вот такого скрипта:
Чур, кто сразу ломанулся испробовать код в интерпретаторе - тот дурак.
Версии, и, главное, объяснения - в каменты!
в
<?php $a = array(1,2,3); foreach ($a as $k=>&$v); foreach ($a as $k=>$v); print_r($a);
Чур, кто сразу ломанулся испробовать код в интерпретаторе - тот дурак.
Версии, и, главное, объяснения - в каменты!
- Блог пользователя Sniff
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии




Комментарии
Код не закрыт, ничего не будет
-1
Да, забыл уточнить - загадка для опытных PHP-программистов, начинающие - читать мануал на php.net
Учите матчасть.
а его какбе и не закрывают, особенно со времен зенд-фрейморка
Аццкий СОТОНА
Я бы сказал сначала, что ничего не будет - точнее произойдет вывод массива [1, 2, 3].
Но раз это загадка, то значит что-то должно быть. Поэтому я посмотрел внимательнее и решил, что будет [1, 2, 2].
Причина?
Я вошел в роль робота-интерпретатора и выполнил инструкции PHP.
- сначала проход цикла foreach, на i-й итерации которой переменная $v становится ссылкой на i-й элемент массива
- затем проход второго цикла foreach, на i-й итерации которого в переменную $v записывается значение i-го элемента массива. Так как $v после первого цикла является ссылкой на последний элемент массива, то все значения пишутся именно туда. Сначала в $a[последний] пишется 1, потом 2, потом свое же собственное значение.
Зеркелла - молодец!
ААААА!
Зеркелла - робот!
:)
У меня изначально сходу без анализа думал 111 или 333. И не спрашивайте почему :)))))
Потом после анализа 122.
Почитал коменты. Зеркела все правильно объяснил.
А у меня ПХП версии 4, и я использую к тому же только while(list(...)=each(... . Как я много в жизни потерял, а сколько всего не нашел! :)
--
Хочу быть ураном. В смысле чтобы меня обогащали.
Жаль, что у вас нет возможности работать с современными технологиями :-(
Ха-ха!
Никто не видел, а я написал аццкий пост с id=666!
Я тебе сразу сказал )
А, ты в этом смысле... :)
Автор сам придумал пример или вычитал из моего Certification Study Guide?
1m.dm обнаружил в ходе работы над maanimo.com, я только поделился.
в ходе работы над манимоточкаком? прикольна, какое удивительное стечение обстоятельств....
http://iphp.com.ua/archives/49