operator &
& เป็นเครื่องหมาย ชี้ไปยังตำแหน่งในหน่วยความจำเลยครับ ทำให้เมื่อเปลี่ยนค่าใด ในตัวแปรแล้ว ตัวแปรที่เชื่อมอยู่จะเปลี่ยนตาม
อธิบายอาจงง ดูที่ตัวอย่าง
จะเห็นว่าเมื่อ $b = pointer ของ $a[1] แล้วหากค่าของ $a[1] เปลี่ยน ค่าที่ $b ก็จะเปลี่ยนตาม
อธิบายอาจงง ดูที่ตัวอย่าง
<?
$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 ก็จะเปลี่ยนตาม