StepCoding

การส่งค่าพารามิเตอร์ (Passing parameter)

อ่าน [782] หมวดหมู่: ฟังก์ชัน (Function)

ในการส่งค่าพารามิเตอร์ (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) ตัวแปรที่ส่งมาอยู่แล้ว

ผู้สนับสนุน