ในการส่งค่าพารามิเตอร์ (parameter) มีทั้งหมด 2 แบบ คือแบบ pass by value และ pass by reference ซึ่งโดยทั่วไปแล้วจะเป็นการส่งค่าแบบ pass by value นั่นก็คือการส่งค่าตัวแปรเข้าไปธรรมดาเท่านั้น เช่น
<?php
function myFunc($str1) {
echo $str1;
}
myFunc("Hello");
?>
ต่อมาเรามาดูอีกแบบหนึ่งกันครับ นั่นก็คือแบบ pass by reference หรือการส่งค่าแบบอ้างอิงค่าที่ส่งไป ซึ่งในการที่จะส่งค่าแบบ pass by reference นี้ เวลาสร้างฟังก์ชัน เมื่อเราจะกำหนดพารามิเตอร์นั้นจะต้องใส่เครื่องหมาย ampersand (&) นำหน้าชื่อพารามิเตอร์ นั้น ๆ เพื่อเป็นการบ่งบอกว่าพารามิเตอร์ตัวนี้เป็นการรับค่าแบบ reference นั่นเอง
<?php
function exponential(&$value) {
$value *= $value;
}
$num = 10;
echo $num;
// 10
exponential($num);
echo $num;
// 100
exponential($num);
echo $num;
// 10000
?>
จากตัวอย่าง จะเห็นว่ามันจะทำการอ้างอิงค่าตัวแปรที่ส่งมาทางพารามิเตอร์ และไม่จำเป็นต้องทำการคืนค่ากลับไปด้วย เนื่องจากว่ามันทำการอ้างอิง (reference) ตัวแปรที่ส่งมาอยู่แล้ว
ผู้สนับสนุน