Ещё о list

Вообще list странная и слабодокументированная конструкция. Мало кто знает что можно сделать так:

$a = list ($b, $c) = array (1,2);
list ($a, $b) = list ($c, $d) = array(1,2);

и что будет если сделать вот так:

$a = array(1, 2);
list ($a[], $a[]) = $a;

Поделиться
Отправить
2 комментария
Улитка

Смею предположить, что во втором случае в массиве будет последовательность 1,2,2,1.
Про первый случай ничего не знаю, ни разу так не делал.

Евгений Степанищев (bolknote.ru)

Комментарий для Улитка:

Правильный ответ :) В первом же случае list «пропустит» сквозь себя то, что стоит справа. То есть это эквивалетно

list ($a, $b) = array(1,2);
list ($c, $d) = array(1,2);

Именно поэтому работают примеры из документации вида
while (list ($key, $val) = each ($_POST))
{
}

Популярное