Итак, вот что я вижу в этом коде:
- Создан массив
- Цикл повторяется 10 раз
- Создается новый массив
- Ссылка на этот новый массив сохраняется в первом массиве
- 10 массивов теперь находятся в исходном массиве со значениями 0, 1, 2, 3 ...
Что на самом деле происходит:
Код:
<?php
header('Content-type: text/plain');
$arrays = array();
foreach(range(0, 10) as $i)
{
$arr = array();
$arr[0] = $i;
$arrays[] = &$arr;
}
print_r($arrays);
Вывод:
Array
(
[0] => Array
(
[0] => 10
)
[1] => Array
(
[0] => 10
)
[2] => Array
(
[0] => 10
)
[3] => Array
(
[0] => 10
)
[4] => Array
(
[0] => 10
)
[5] => Array
(
[0] => 10
)
[6] => Array
(
[0] => 10
)
[7] => Array
(
[0] => 10
)
[8] => Array
(
[0] => 10
)
[9] => Array
(
[0] => 10
)
[10] => Array
(
[0] => 10
)
)
Я хотел бы знать точно, почему, по-видимому, только 10-й массив упоминается десять раз, а не каждый экземпляр массива, ссылающийся на один каждый.
Также, если кто-то, кто не просто думает WTF (как я) хотел бы отредактировать заголовок, не стесняйтесь.