แนะนำตัว
ใน PHP, นอกจากนี้ยังสามารถสร้างฟังก์ชันเพื่อส่งคืนข้อมูลอ้างอิงได้ สิ่งนี้มีประโยชน์ในการค้นหาว่าตัวแปรใดที่อ้างอิงควรถูกผูกไว้ ในการกำหนดฟังก์ชันที่ส่งคืนการอ้างอิง ให้นำหน้าชื่อด้วย & ลงชื่อ
ตัวอย่าง
ในตัวอย่างต่อไปนี้ myfunction() ถูกกำหนดให้ส่งคืนโดยการอ้างอิง ประกอบด้วยตัวแปรสแตติกที่มีการส่งคืนการอ้างอิงและกำหนดให้กับตัวแปรส่วนกลาง ค่าของตัวแปรสแตติกในพื้นที่จะเปลี่ยนการอ้างอิง ouside ถูกกำหนดด้วยค่าที่ต่างกัน
ตัวอย่าง
<?php function &myfunction(){ static $x=10; echo "x Inside function: ",$x,"\n"; return $x; } $a=&myfunction(); //contains reference to 4x in function echo "returned by reference: ", $a, "\n"; $a=$a+10; //increments variable inside function too $a=&myfunction(); ?>
ผลลัพธ์
ตัวอย่างนี้ให้ผลลัพธ์ต่อไปนี้
x Inside function: 10 returned by reference: 10 x Inside function: 20
วิธีการคืนค่าการอ้างอิง
คลาสยังสามารถมีเมธอดที่สามารถส่งคืนการอ้างอิงได้ สิ่งนี้ทำให้ค่า chenging ของตัวแปรอินสแตนซ์ส่วนตัวจากภายนอกคลาสได้
ตัวอย่าง
<?php class myclass{ private $val; function __construct($x){ $this->val=$x; } function &getbyref(){ return $this->val; } function getbyval(){ return $this->val; } } $a=new myclass(10); $b=&$a->getbyref(); $b=100; echo "Value of private property: ", $a->getbyval(); ?>
ผลลัพธ์
ผลลัพธ์ของสคริปต์ข้างต้นเป็นดังนี้
Value of private property: 100