PHP'de foreach İçinde Referanslar
foreach döngüsü ile çalışırken
elemanlar için olan değişkeni değiştirmek
dizinin kendisinde değişikliğe yol açmaz:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // değişmez
?>
Ancak, elemanlar için olan değişkeni referans olarak bildirirsek istenen etki elde edilebilir. Bu durumda bu değişkende yapılan değişiklikler dizide de değişikliklere yol açacaktır:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // değişir
?>
Aşağıdaki kodu, amaçlandığı gibi çalışacak şekilde düzeltin:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Aşağıdaki kodu, amaçlandığı gibi çalışacak şekilde düzeltin:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>