Ещё о 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;

11 марта 2004 08:20

Улитка (инкогнито)
11 марта 2004, 22:04

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

bolk (bolknote.ru)
11 марта 2004, 22:04, ответ предназначен Улитка

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

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

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

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)