кроссворды, задачки, головоломки

Сборник задач разного уровня сложности по математике, информатике, физике, химии, программированию, экономике etc. Логические задачи, SQL задачи, решение задач. Задачи с ответами, а также нерешённые задачи.

Petruchek.Info

Указатели в foreach

Добавлено: 05.09.10 в 14:00
Метки: php

Что выведет такой скрипт и почему?

$a = array (1,2,3,4,5,6,7,8);

foreach(
$a as $k=>&$i)
{
}

foreach($a as $i)
{
}

print_r($a);

P.S. Задача для php5, т.к. указатели в foreach появились, начиная с пятой версии.

СПРЯТАТЬ РЕШЕНИЕ/ОТВЕТ

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 7
)
А всё потому, что reference of a $value and the last array element remain even after the foreach loop. It is recommended to destroy it by unset() (php manual).

Комментарии
Google says:
Аноним (24.01.11):
Скрипт выведет массив вида array (0=>1,1=>2 и так далее....)
Apollo (16.02.11):
Array
(

)
   Ответ редакции
Типа только ты умеешь запускать пхп скрипты?
dmc (26.07.11):
внимательно читай описания функций, васидзэ)
Аноним прав ибо форич не вытягивает значения из массива, а просто показывает их
Аноним (28.11.12):
не все так просто в последней ячейке будет 7 вместо 8
Аноним (14.06.15):
вот ,как раз ты и есть васидзе ,в примере $arr as &$i
& - указывает на то,что мы работаем не с копией элемента массива,а непосредственно с элементом массива.
Комментарий от новенького:
Новенький является
Новенький не робот
Знаки на картинке: латинские буквы, арабские цифры


Есть на сайте: Онлайн кроссворды Задачи Онлайн игры Блог
Все работы, опубликованные на сайте — авторские, если не указано иное. Перепечатка возможна только с письменного разрешения владельцев ресурса, с обязательной ссылкой на сайт petruchek.info. Пишите нам: . Сайт должен работать в IE, FF, Opera, Safari.

Реклама:

Разработано в студии "Webous"о проектесайта карта

Реклама: