Mảng tham chiếu trong PHP
Trong PHP, khác với các ngôn ngữ lập trình khác, mảng cũng được sao chép chứ không được truyền bằng tham chiếu.
Hãy kiểm chứng điều này:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
var_dump($arr1); // không thay đổi
?>
Bây giờ hãy buộc mảng được truyền bằng tham chiếu:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr2[0] = '!';
var_dump($arr1); // sẽ thay đổi
?>
Hãy cho biết kết quả thực hiện mã:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = $arr1;
$arr2[0] = '!';
echo $arr1[0];
echo $arr2[0];
?>
Hãy cho biết kết quả thực hiện mã:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
echo $arr1[0];
echo $arr2[0];
?>
Hãy cho biết kết quả thực hiện mã:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = &$arr1;
$arr1[0]++;
$arr2[0]++;
echo $arr1[0];
echo $arr2[0];
?>