การหาค่ามากกว่าและน้อยกว่าจากตัวเลขสองตัวและสลับที่กัน

การหาค่ามากกว่าและน้อยกว่าจากตัวเลขสองตัวและสลับที่กัน

สมมุติว่า เรามีตัวแปรอยู่สองตัว และเราต้องการจะตรวจดูว่า ตัวแปรตัวแรกมีค่าน้อยกว่าตัวแปรอีกตัวหรือไม่ ถ้าไม่ ก็ให้สลับที่กัน ปัญหานี้เราสามารถแก้ไขได้โดยเขียนฟังก์ชันดังนี้

<?

function minmax (&$a,&$b) {
if ($a > $b) {
$t=$a; $a=$b; $b=$t;
}
}

$x=10;
$y=3;
echo “x=”,$x,”,y=”,$y,”<BR>\n”;
minmax($x,$y);
echo “x=”,$x,”,y=”,$y,”<BR>\n”;

?>

ฟังก์ชัน minmax() เป็นตัวอย่างของฟังก์ชันที่ใช้หลักการของ call-by-reference โปรดสังเกตที่เครื่องหมาย & ที่วางอยู่หน้าตัวแปรที่เป็นอาร์กิวเมนต์ของฟังก์ชัน การเรียกใช้ฟังก์ชันแบบ call-by-reference ช่วยให้เราสามารถผ่านตัวแปรไปยังฟังก์ชัน และให้ฟังก์ชันสามารถเปลี่ยนแปลงแก้ไขค่าของตัวแปรนั้นได้