ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

 บทที่ 24 เขียนฟังก์ชั่น สลับค่าของตัวแปรสองตัว swap()

ถ้าเราต้องการสลับค่าระหว่างสองตัวแปร เราก็เขียนฟังก์ชัน swap() ขึ้นมา
 
ไฟล์ตัวอย่าง :: code_ex1.php
<?php
function swap(&$a, &$b) {
  $t = $a;
  $a = $b;
  $b = $t;
}
$x=10;
$y=3;
echo "x=",$x,",y=",$y," ";
swap($x,$y);
echo "x=",$x,",y=",$y," ";
?>

ตัวอย่างข้างบน ก็แสดงให้เห็นวิธีการใช้ call-by-reference อีกเช่นกัน

มีข้อสังเกตอยู่ว่า การใช้ call-by-reference ไม่จำเป็นต้องทำตอนนิยามฟังก์ชันเท่านั้น แต่อาจจะทำตอนผ่านตัวแปรเมื่อเรียกใช้งานจริง ตัวอย่างเช่น
 

ไฟล์ตัวอย่าง :: code_ex2.php
<?php
function swap($a, $b) {
$t = $a;
$a = $b;
$b = $t;
}
$x=10;
$y=3;
echo "x=",$x,",y=",$y," ";
swap($x, $y);
echo "x=",$x,",y=",$y," ";
?>

จากตัวอย่างนี้ เราแก้ไขฟังก์ชัน swap() ทำให้ไม่สนับสนุน call-by-reference ดังนั้นเพื่อจะใช้งานได้อย่างถูกต้อง  เราก็จะต้องใช้ reference ของตัวแปรเป็นอาร์กิวเมนต์ของฟังก์ชัน ในเวลาที่เรียกใช้ ซึ่งก็คือ swap(&$x,&$y)  ถ้าเราไม่ทำอย่างนี้ เช่น เขียนว่า swap($x,$y) ก็จะไม่มีการสลับค่าของตัวแปรทั้งสอง เนื่องจากว่า เมื่ออยู่ภายในฟังก์ชัน swap() แล้ว เราไม่สามารถเปลี่ยนแปลงค่าของตัวแปรเหล่านั้นได้ คืออ่านได้ แต่ไม่สามารถกำหนดค่าใหม่ได้

ชื่อ
บทที่ 24 การสลับค่าของตัวแปรสองตัว swap()
หมวดหมู่
PHP Basics, PHP Basics
ฮิต
11645
ผู้สร้างเอกสาร
thatsawan
วันที่สร้างเอกสาร
2014-05-13 19:18:48

chapter_24.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 699 bytes

ผู้อัพโหลดไฟล์ thatsawan

วันที่อัพโหลด 2014-04-21 14:47:14




กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 08 พฤศจิกายน 2561
โดย nice_13 พฤ 08 พ.ย. 2018 9:51 am บอร์ด M071 - พิชญ์สินี คงจร
1
3
พฤ 08 พ.ย. 2018 7:15 pm โดย nice_13
งานประจำวันที่ 8 พฤศจิกายน 2561
โดย tatiya พฤ 08 พ.ย. 2018 9:14 am บอร์ด M065 - ตติยะ นาชัย
1
11
พฤ 08 พ.ย. 2018 10:00 pm โดย tatiya
ปฏิทิน
โดย tai14 พ 07 พ.ย. 2018 7:08 pm บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
8
ศ 09 พ.ย. 2018 3:42 pm โดย tai14
Q - สอบถาม error ติดตั้ง component 3.x เป็น 4.x ค่ะ
โดย pprn พ 07 พ.ย. 2018 6:39 pm บอร์ด Joomla Dev
0
5
พ 07 พ.ย. 2018 6:39 pm โดย pprn
วิธีการ export ข้อมูล จากฐาน้อมูล โดยใช้ php ออกไปเป็น excel
โดย Ittichai_chupol พ 07 พ.ย. 2018 6:02 pm บอร์ด PHP Knowledge
0
67
พ 07 พ.ย. 2018 6:02 pm โดย Ittichai_chupol
Q - สอบถาม error SQL INSERT INTO ตอนติดตั้ง component ค่ะ
โดย pprn พ 07 พ.ย. 2018 5:56 pm บอร์ด Joomla Dev
0
9
พ 07 พ.ย. 2018 5:56 pm โดย pprn
งานประจำวันที่ 7 พฤษจิกายน 2561
โดย prakon พ 07 พ.ย. 2018 10:28 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
8
พ 07 พ.ย. 2018 7:25 pm โดย prakon
งานประจำวันที่ 7 พฤศจิกายน 2561
โดย pprn พ 07 พ.ย. 2018 10:16 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
20
พ 07 พ.ย. 2018 7:17 pm โดย pprn
งานประจำวันที่ 7 พฤศจิกายน 2561
โดย tai14 พ 07 พ.ย. 2018 10:05 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
8
พ 07 พ.ย. 2018 7:11 pm โดย tai14
งานประจำวันที่ 07 พฤศจิกายน 2561
โดย nice_13 พ 07 พ.ย. 2018 9:55 am บอร์ด M071 - พิชญ์สินี คงจร
1
4
พ 07 พ.ย. 2018 7:09 pm โดย nice_13
งานประจำวันที่ 07 พฤษจิกายน 2561
โดย Ittichai_chupol พ 07 พ.ย. 2018 9:50 am บอร์ด M070 - อิทธิชัย ชูผล
1
5
พ 07 พ.ย. 2018 7:20 pm โดย Ittichai_chupol
งานประจำวันที่ 7 พฤศจิกายน 2561
โดย tatiya พ 07 พ.ย. 2018 9:47 am บอร์ด M065 - ตติยะ นาชัย
1
6
พ 07 พ.ย. 2018 9:33 pm โดย tatiya
งานประจำวันที่ 06 พฤษจิกายน 2561
โดย Parichat อ 06 พ.ย. 2018 11:05 pm บอร์ด Part time work M061
5
14
ส 10 พ.ย. 2018 3:42 pm โดย Parichat
R- mdsoft_zenih_pi_print - ใบไพปริ้น (MT24)
โดย prakon อ 06 พ.ย. 2018 8:46 pm บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
11
อ 06 พ.ย. 2018 8:55 pm โดย prakon
R - mdsoft_purchase_of_food_print - ใบปริ้นใบสั่งซื้ออาหาร @M045
โดย nuattawoot อ 06 พ.ย. 2018 6:40 pm บอร์ด บุญนำพา - Developer
1
12
พฤ 08 พ.ย. 2018 7:33 pm โดย nuattawoot
R - mdsoft_order_cook_print - โมดูลใบปริ้นใบสั่งงานแม่ครัว @M045
โดย nuattawoot อ 06 พ.ย. 2018 6:34 pm บอร์ด บุญนำพา - Developer
1
12
อ 18 พ.ย. 2018 9:06 pm โดย thatsawan
R - mdsoft_order_cook - โมดูลใบแม่ครัว @M045
โดย nuattawoot อ 06 พ.ย. 2018 6:31 pm บอร์ด บุญนำพา - Developer
2
8
อ 18 พ.ย. 2018 9:09 pm โดย thatsawan
R - mdsoft_purchase_of_food -โมดูลใบสั่งซื้ออาหาร @M045
โดย nuattawoot อ 06 พ.ย. 2018 6:15 pm บอร์ด บุญนำพา - Developer
1
14
อ 06 พ.ย. 2018 6:23 pm โดย nuattawoot
เมื่อโดนเจ้านายตักเตือน
โดย tai14 อ 06 พ.ย. 2018 5:51 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
76
อ 06 พ.ย. 2018 5:51 pm โดย tai14
งานประจำวันที่ 6 พฤศจิกายน 2561
โดย pprn อ 06 พ.ย. 2018 10:21 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
18
อ 06 พ.ย. 2018 7:20 pm โดย pprn