# รูปแบบ
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] ถูกเปลี่ยนค่าตาม
ผู้สนับสนุน