Im folgenden werde ich versuchen, genau zu erklären, wie Iteration in den verschiedenen Fällen funktioniert. Ich frage mich, warum Element zum Array hinzufügen iteriert in foreach Anweisung in PHP
$arr=[1,2,3];
$count=0;
foreach ($arr as $value){ \\
echo "$value\n";
if ($count++<10) $arr[]=$value+1; \\add new element
}
print_r($arr);
Ergebnisse in
1
2
3
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 2
[4] => 3
[5] => 4
)
während
$arr=[1,2,3];
$count=0;
foreach ($arr as &$value){ \\reference elemnt
echo "$value\n";
if ($count++<10) $arr[]=$value+1;
}
print_r($arr);
Ergebnisse in
1
2
3
2
3
4
3
4
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 2
[4] => 3
[5] => 4
[6] => 3
[7] => 4
)
oder bessere Frage, was foreach Mechanismus in PHP ist dank
könnte mir bitte jemand sagen, was unter der Haube über diese Codes läuft. – Bagheri
@Bagheri PHP ist Open Source und in C geschrieben. Wenn Sie denken, dass Sie damit umgehen können, dann können Sie [die Quelle auschecken] (https://github.com/php/php-src). Ich kann dir damit nicht helfen. – apokryfos