Tömbreferenciák a PHP-ban
A PHP-ban, más programozási nyelvekkel ellentétben, a tömbök is másolódnak, nem referenciával adódnak át.
Győződjünk meg erről:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
var_dump($arr1); // nem változik
?>
Most kényszerítsük a tömböt, hogy referenciával adódjon át:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr2[0] = '!';
var_dump($arr1); // megváltozik
?>
Mondd el, mi lesz a kód végrehajtásának eredménye:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
echo $arr1[0];
echo $arr2[0];
?>
Mondd el, mi lesz a kód végrehajtásának eredménye:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
echo $arr1[0];
echo $arr2[0];
?>
Mondd el, mi lesz a kód végrehajtásának eredménye:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
$arr2[0]++;
echo $arr1[0];
echo $arr2[0];
?>