A-AA+then

& เป็นเครื่องหมาย ชี้ไปยังตำแหน่งในหน่วยความจำเลยครับ ทำให้เมื่อเปลี่ยนค่าใด ในตัวแปรแล้ว ตัวแปรที่เชื่อมอยู่จะเปลี่ยนตาม

อธิบายอาจงง ดูที่ตัวอย่าง

<?
   $a = array( 1 => "A" );//$a[1]="A"
   print_r( $a );//Array( [1] => A )

  $b = &$a[1];//$b ชี้ไปที่ตำแหน่งของ $a[1] บนหน่วยความจำ
  echo($b)//ค่าที่ $b = "A"

  $a[1] = 'XX';//ทดลองเปลี่ยนค่าที่ $a[1]
  print_r( $a );//Array( [1] => XX )
  echo( $b )//ค่าที่ $b = "XX"
?>

จะเห็นว่าเมื่อ $b = pointer ของ $a[1] แล้วหากค่าของ $a[1] เปลี่ยน ค่าที่ $b ก็จะเปลี่ยนตาม

PHP

Relate

^