Почему массив PHP модифицируется, когда его элемент присваивается ссылка?

При повторном назначении элемента массива содержимое массива изменяется:

$arr = array(100, 200);
var_dump($arr);
/* shows:
array(2) {
  [0]=>
  int(100)  // ← ← ← int(100)
  [1]=>
  int(200)
}
*/

$r = &$arr[0];
var_dump($arr);
/* shows:
array(2) {
  [0]=>
  &int(100)  // ← ← ← &int(100)
  [1]=>
  int(200)
}
*/

Живи бегом. (Zend Engine будет работать нормально, в то время как HHVM показывает «Процесс завершен с кодом 153».)

Почему элемент изменен?

Почему мы видим&int(100) вместоint(100)?

Это кажется совершенно странным. Чем объясняется эта странность?

Ответы на вопрос(1)

Ваш ответ на вопрос