Σύνδεσμοι στο foreach στην PHP
Όταν εργάζεστε με τον βρόγχο foreach
η αλλαγή της μεταβλητής για τα στοιχεία
δεν οδηγεί σε αλλαγές στον ίδιο τον πίνακα:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
$elem++;
}
var_dump($arr); // δεν αλλάζει
?>
Ωστόσο, το επιθυμητό αποτέλεσμα μπορεί να επιτευχθεί αν δηλώσετε τη μεταβλητή για τα στοιχεία ως αναφορά. Σε αυτήν την περίπτωση, οι αλλαγές αυτής της μεταβλητής θα οδηγήσουν σε αλλαγές στον πίνακα:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem++;
}
var_dump($arr); // αλλάζει
?>
Διορθώστε τον ακόλουθο κώδικα έτσι, ώστε να λειτουργεί σύμφωνα με τη σχεδίαση:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem = sqrt($elem);
}
var_dump($arr);
?>
Διορθώστε τον ακόλουθο κώδικα έτσι, ώστε να λειτουργεί σύμφωνα με τη σχεδίαση:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as &$elem) {
$elem ** 2;
}
var_dump($arr);
?>