Referenzen in foreach in PHP
Bei der Arbeit mit der Schleife foreach
führt die Änderung der Variablen für die Elemente
nicht zu Änderungen im Array selbst:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // ändert sich nicht
?>
Den gewünschten Effekt kann man jedoch erzielen, wenn man die Variable für die Elemente als Referenz deklariert. In diesem Fall führen Änderungen dieser Variable zu Änderungen im Array:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // ändert sich
?>
Korrigieren Sie den folgenden Code so, dass er wie beabsichtigt funktioniert:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Korrigieren Sie den folgenden Code so, dass er wie beabsichtigt funktioniert:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>