При использовании цикла foreach и ссылки, как я могу остановить последний член, указывающий на ссылку? - PullRequest
0 голосов
/ 14 июля 2011

Рассмотрим этот код ...

$a = range(1, 5);

foreach($a as &$b) { }

var_dump($a);

Вывод ...

array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  &int(5)
}

CodePad .

См. & на последнем члене?Как я могу это остановить?

1 Ответ

1 голос
/ 14 июля 2011

Вы можете unset($b).

$a = range(1, 5);

foreach($a as &$b) { }

unset($b);

var_dump($a);

CodePad .

Вы должны unset(), чтобы избежать этого ...

$a = range(1, 5);

foreach($a as &$b) { }

$b = 10;

var_dump($a);

... который выводит ...

array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  &int(10)
}

CodePad .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...