StepCoding

การคืนค่าจากฟังก์ชัน (Return values)

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

ฟังก์ชันใน PHP นั้นสามารถคืนค่าได้เพียงค่าเดียวเท่านั้น โดยใช้ keyword return

# รูปแบบ
function return_one() {
	return 42;
}

ในกรณีที่ต้องการคืนค่าหลาย ๆ ค่า จะต้องคืนค่าแบบ array ดังนี้

# รูปแบบ
function return_two() {
	return array("Foo", 20);
}

โดยปกติแล้ว ค่าที่คืนค่ากลับมาจากฟังก์ชันนั้นมีลักษณะเป็นแบบ copy ค่าไปยังจุดที่เรียก แต่ถ้าเราประกาศเครื่องหมาย ampersand (&) ไว้นำหน้าชื่อฟังก์ชัน มันจะทำการคืนค่าแบบ reference กลับไป

<?php
$names = array("Fred", "Barney", "Wilma", "Betty");
function &find_one($n) {
	global $names;
	return $names[$n];
}
$person =& find_one(1);	// Barney
$person = "Barnetta";		// จะเปลี่ยนแปงค่าใน $names[1]
?>

ในตัวอย่างด้านบนนี้ฟังก์ชัน find_one() จะทำการคืนค่าเป็นการอ้างอิงจากตัวแปร $names[1] แทนการคัดลอกค่าจากฟังก์ชันไปยังจุดที่เรียก เพราะว่าเราได้กำหนดให้มันคืนค่าแบบ reference ดังนั้น $person จะทำการอ้างอิงตัวแปร $names[1] อยู่ และเมื่อเราทำการเปลี่ยนแปลงค่าให้กับตัวแปร $person จะทำให้ $names[1] ถูกเปลี่ยนค่าตาม

ผู้สนับสนุน