Загадка для PHP-программистов

Друзья, вот у нас тут к вам вопрос: что будет в результате работы вот такого скрипта:
<?php
$a = array(1,2,3);
foreach ($a as $k=>&$v);
foreach ($a as $k=>$v);
print_r($a);

Чур, кто сразу ломанулся испробовать код в интерпретаторе - тот дурак.

Версии, и, главное, объяснения - в каменты!top of hotblogs.org.ua

Комментарии

Код не закрыт, ничего не будет

Изображение пользователя Gaudeamus.

-1

Изображение пользователя Sniff.

Да, забыл уточнить - загадка для опытных PHP-программистов, начинающие - читать мануал на php.net

Учите матчасть.

Изображение пользователя maserg.

а его какбе и не закрывают, особенно со времен зенд-фрейморка

Изображение пользователя Gaudeamus.

Аццкий СОТОНА

Я бы сказал сначала, что ничего не будет - точнее произойдет вывод массива [1, 2, 3].

Но раз это загадка, то значит что-то должно быть. Поэтому я посмотрел внимательнее и решил, что будет [1, 2, 2].

Изображение пользователя Sniff.

Причина?

Я вошел в роль робота-интерпретатора и выполнил инструкции PHP.

- сначала проход цикла foreach, на i-й итерации которой переменная $v становится ссылкой на i-й элемент массива

- затем проход второго цикла foreach, на i-й итерации которого в переменную $v записывается значение i-го элемента массива. Так как $v после первого цикла является ссылкой на последний элемент массива, то все значения пишутся именно туда. Сначала в $a[последний] пишется 1, потом 2, потом свое же собственное значение.

Изображение пользователя Sniff.

Зеркелла - молодец!

ААААА!
Зеркелла - робот!

:)

У меня изначально сходу без анализа думал 111 или 333. И не спрашивайте почему :)))))
Потом после анализа 122.
Почитал коменты. Зеркела все правильно объяснил.

Изображение пользователя daru.

А у меня ПХП версии 4, и я использую к тому же только while(list(...)=each(... . Как я много в жизни потерял, а сколько всего не нашел! :)

--
Хочу быть ураном. В смысле чтобы меня обогащали.

Жаль, что у вас нет возможности работать с современными технологиями :-(

Изображение пользователя Sniff.

Ха-ха!
Никто не видел, а я написал аццкий пост с id=666!

Изображение пользователя Gaudeamus.

Я тебе сразу сказал )

Изображение пользователя Sniff.

А, ты в этом смысле... :)

Автор сам придумал пример или вычитал из моего Certification Study Guide?

Изображение пользователя Sniff.

1m.dm обнаружил в ходе работы над maanimo.com, я только поделился.

Изображение пользователя maserg.

в ходе работы над манимоточкаком? прикольна, какое удивительное стечение обстоятельств....

http://iphp.com.ua/archives/49