Foreach に問題があります。2 番目の foreach を理解できません。
$foo 配列の 3 番目の部分の値に「2」が含まれているのはなぜですか!
私たちが知っている限りでは、「&」(最初の foreach で) を削除すると問題は解決しますが、なぜでしょうか?
<?php
$foo = array('one', 'two', 'three');
foreach ($foo as &$bar)
{
// no-op
}
var_dump($foo);
foreach ($foo as $bar)
{
// no-op
}
var_dump($foo);
?>
###############################################
生成:
array(3) {
[0]=>string(3) "one"
[1]=>string(3) "two"
[2]=>&string(5) "three"
}
array(3) {
[0]=>string(3) "one"
[1]=>string(3) "two"
[2]=>&string(3) "two"
}