| |
การสร้างเว็บเพจโดยใช้ภาษา PHP บทที่
24
การสลับค่าของตัวแปรสองตัว swap()ถ้าเราต้องการสลับค่าระหว่างสองตัวแปร เราก็เขียนฟังก์ชัน
swap() ขึ้นมา
| <?
function swap(&$a,
&$b) { $t = $a;
$a =
$b; $b
= $t; }
$x=10;
$y=3;
echo
"x=",$x,",y=",$y,"\n"; swap($x,$y); echo "x=",$x,",y=",$y,"\n";
?> |
ตัวอย่างข้างบน ก็แสดงให้เห็นวิธีการใช้
call-by-reference อีกเช่นกัน
มีข้อสังเกตอยู่ว่า การใช้ call-by-reference
ไม่จำเป็นต้องทำตอนนิยามฟังก์ชันเท่านั้น
แต่อาจจะทำตอนผ่านตัวแปรเมื่อเรียกใช้งานจริง ตัวอย่างเช่น
| <?
function swap($a, $b)
{ $t =
$a; $a
= $b;
$b = $t; }
$x=10;
$y=3;
echo
"x=",$x,",y=",$y,"\n"; swap(&$x, &$y);
echo
"x=",$x,",y=",$y,"\n";
?> |
จากตัวอย่างนี้ เราแก้ไขฟังก์ชัน swap() ทำให้ไม่สนับสนุน
call-by-reference ดังนั้นเพื่อจะใช้งานได้อย่างถูกต้อง
เราก็จะต้องใช้ reference ของตัวแปรเป็นอาร์กิวเมนต์ของฟังก์ชัน
ในเวลาที่เรียกใช้ ซึ่งก็คือ swap(&$x,&$y)
ถ้าเราไม่ทำอย่างนี้ เช่น เขียนว่า swap($x,$y)
ก็จะไม่มีการสลับค่าของตัวแปรทั้งสอง เนื่องจากว่า
เมื่ออยู่ภายในฟังก์ชัน swap() แล้ว
เราไม่สามารถเปลี่ยนแปลงค่าของตัวแปรเหล่านั้นได้ คืออ่านได้
แต่ไม่สามารถกำหนดค่าใหม่ได้
|