การอ้างอิงอาร์เรย์ใน PHP

ใน PHP ต่างจากภาษาอื่น อาร์เรย์จะถูกคัดลอกแทนที่จะถูกส่งผ่าน โดยการอ้างอิง

ลองมาตรวจสอบเรื่องนี้:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  $arr2 = $arr1;
  $arr2[0] = '!';
  
  var_dump($arr1); // จะไม่เปลี่ยนแปลง
?>

ทีนี้มาบังคับให้อาร์เรย์ถูกส่งผ่าน โดยการอ้างอิง:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  $arr2 = &$arr1;
  $arr2[0] = '!';
  
  var_dump($arr1); // จะเปลี่ยนแปลง
?>
Задание 1

บอกหน่อยว่า ผลลัพธ์ของโค้ดนี้ จะเป็นอย่างไร:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = $arr1;
  $arr2[0] = '!';
  
  echo $arr1[0];
  echo $arr2[0];
?>
Задание 2

บอกหน่อยว่า ผลลัพธ์ของโค้ดนี้ จะเป็นอย่างไร:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = &$arr1;
  $arr1[0]++;
  
  echo $arr1[0];
  echo $arr2[0];
?>
Задание 3

บอกหน่อยว่า ผลลัพธ์ของโค้ดนี้ จะเป็นอย่างไร:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = &$arr1;
  
  $arr1[0]++;
  $arr2[0]++;
  
  echo $arr1[0];
  echo $arr2[0];
?>