Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

การคืนค่าแบบอ้างอิง (Return by Reference) ใน PHP

บทนำ

ใน PHP , ฟังก์ชันสามารถทำให้คืนค่าแบบอ้างอิง (return a reference) ได้ นี่มีประโยชน์ในการค้นหาว่าตัวแปรไหนควรผูกกับอ้างอิง เพื่อกำหนดฟังก์ชันที่คืนค่าอ้างอิง ให้นำหน้าชื่อฟังก์ชันด้วยเครื่องหมาย &

ตัวอย่าง

ในตัวอย่างต่อไปนี้ myfunction() ถูกกำหนดให้คืนค่าอ้างอิง มันมีตัวแปรสแตติกซึ่งอ้างอิงถูกคืนและมอบหมายให้ตัวแปร global ค่าของตัวแปรสแตติกท้องถิ่นจะเปลี่ยนไปด้วยเมื่ออ้างอิงภายนอกถูกมอบหมายค่าต่างออกไป

ตัวอย่าง

<?php function &myfunction(){     static $x=10;     echo "x Inside function: ",$x,"\n";     return $x; } $a=&myfunction(); //มีอ้างอิงถึง 4x ในฟังก์ชัน echo "returned by reference: ", $a, "\n"; $a=$a+10; //เพิ่มตัวแปรในฟังก์ชันด้วย $a=&myfunction(); ?>

ผลลัพธ์

x Inside function: 10 returned by reference: 10 x Inside function: 20

เมธอดที่คืนค่าอ้างอิง (method returning reference)

คลาสก็สามารถมีเมธอดที่คืนค่าอ้างอิงได้ นี่ช่วยให้เปลี่ยนค่าตัวแปร instance private จากนอกคลาสได้

ตัวอย่าง

<?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