แนะนำตัว
ใน 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