Πίνακες-Αναφορές στην PHP
Στην PHP, σε αντίθεση με άλλες γλώσσες προγραμματισμού, οι πίνακες επίσης αντιγράφονται, αντί να μεταβιβάζονται με αναφορά.
Ας το επιβεβαιώσουμε:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
var_dump($arr1); // δεν αλλάζει
?>
Ας αναγκάσουμε τώρα τον πίνακα να μεταβιβαστεί με αναφορά:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr2[0] = '!';
var_dump($arr1); // αλλάζει
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
echo $arr1[0];
echo $arr2[0];
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
echo $arr1[0];
echo $arr2[0];
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
$arr2[0]++;
echo $arr1[0];
echo $arr2[0];
?>