ให้เรตสมาชิก: 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
ฮิต
10239
ผู้สร้างเอกสาร
thatsawan
วันที่สร้างเอกสาร
2014-05-13 19:18:48

chapter_24.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 699 bytes

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

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




กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 7 กันยายน 2561
โดย muneela ศ 07 ก.ย. 2018 9:28 am บอร์ด M068 - มุนีลา หมัดบาซา
4
24
อ 09 ก.ย. 2018 9:32 pm โดย thatsawan
งานประจำวันที่ 7 กันยายน 2561
โดย tatiya ศ 07 ก.ย. 2018 9:23 am บอร์ด M065 - ตติยะ นาชัย
3
13
ศ 07 ก.ย. 2018 7:53 pm โดย tatiya
งานประจำวันที่ 7 กันยายน 2561
โดย prakon ศ 07 ก.ย. 2018 9:13 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
3
19
จ 10 ก.ย. 2018 10:22 am โดย prakon
งานประจำวันที่ 7 กันยายน 2561
โดย pprn ศ 07 ก.ย. 2018 9:11 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
15
ศ 07 ก.ย. 2018 5:56 pm โดย pprn
งานประจำวันที่ 7 กันยายน 2561
โดย tai14 ศ 07 ก.ย. 2018 9:09 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
12
ศ 07 ก.ย. 2018 5:52 pm โดย tai14
VDO - แนะนำการใช้ tools_pmt
โดย pprn พฤ 06 ก.ย. 2018 5:32 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
29
พฤ 06 ก.ย. 2018 5:32 pm โดย pprn
ไอที Facebook แก้ปัญหาบน iPhone สามารถกด HD บนวิดีโอได้แล้ว
โดย thorng1 พฤ 06 ก.ย. 2018 3:47 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
37
พฤ 06 ก.ย. 2018 3:47 pm โดย thorng1
Q - สอบถามวิธีแปลง ascii บน python หน่อยครับ
โดย tatiya พฤ 06 ก.ย. 2018 10:46 am บอร์ด Programming - C/C++ & java & Python
7
101
พฤ 06 ก.ย. 2018 4:06 pm โดย tatiya
งานประจำวันที่ 6 กันยายน 2561
โดย prakon พฤ 06 ก.ย. 2018 10:22 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
15
พฤ 06 ก.ย. 2018 10:23 am โดย prakon
งานประจำวันที่ 6 กันยายน 2561
โดย muneela พฤ 06 ก.ย. 2018 10:07 am บอร์ด M068 - มุนีลา หมัดบาซา
1
19
พฤ 06 ก.ย. 2018 7:18 pm โดย muneela
งานประจำวันที่ 6 กันยายน 2561
โดย tatiya พฤ 06 ก.ย. 2018 10:07 am บอร์ด M065 - ตติยะ นาชัย
1
5
พฤ 06 ก.ย. 2018 9:38 pm โดย tatiya
งานประจำวันที่ 6 กันยายน 2561
โดย tai14 พฤ 06 ก.ย. 2018 10:05 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
10
พฤ 06 ก.ย. 2018 7:03 pm โดย tai14
งานประจำวันที่ 6 กันยายน 2561
โดย pprn พฤ 06 ก.ย. 2018 10:04 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
16
พฤ 06 ก.ย. 2018 7:01 pm โดย pprn
เปิดการใช้งานบุคคลทั่วไปอย่างไร
โดย athikom พ 05 ก.ย. 2018 8:08 pm บอร์ด Joomla Development
1
59
พ 05 ก.ย. 2018 9:38 pm โดย mindphp
shop back คืออะไร
โดย muneela พ 05 ก.ย. 2018 6:52 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
49
พ 05 ก.ย. 2018 6:52 pm โดย muneela
ใช้ Navitcat มันโชว์ error แบบนี้ต้องเข้าไปแก้ไขอย่างไรบ้างค่ะ
โดย supattra_su พ 05 ก.ย. 2018 6:16 pm บอร์ด SQL - Database
0
41
พ 05 ก.ย. 2018 6:16 pm โดย supattra_su
AI ในปัจจุบันทำอะไรได้บ้าง
โดย muneela พ 05 ก.ย. 2018 4:59 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
40
พ 05 ก.ย. 2018 4:59 pm โดย muneela
ICon
โดย tai14 พ 05 ก.ย. 2018 3:25 pm บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
2
15
ศ 07 ก.ย. 2018 2:54 pm โดย tai14
R - Symfony 2.8 สำหรับ Web Service
โดย tsukasaz พ 05 ก.ย. 2018 10:47 am บอร์ด สิริกิตติรัตน์ - Developer
0
8
พ 05 ก.ย. 2018 10:47 am โดย tsukasaz
งานประจำวันที่ 5 กันยายน 2561
โดย tatiya พ 05 ก.ย. 2018 10:05 am บอร์ด M065 - ตติยะ นาชัย
1
5
พ 05 ก.ย. 2018 9:53 pm โดย tatiya