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

chapter_24.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 699 bytes

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

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




กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - ผมติดตั้ง โมดูลฟอนต์ (oecn_base_fonts) ไม่ได้ ปัญหานี้เกิดบนเครื่อง Ubuntu 16.04 นะครับ
โดย tatiya ศ 22 มี.ค. 2019 5:51 pm บอร์ด OpenERP - MD-ERP
1
7
ศ 22 มี.ค. 2019 6:08 pm โดย tatiya
วิธีทำให้ผมสวย
โดย สริญญา สมสา ศ 22 มี.ค. 2019 3:30 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
5
ศ 22 มี.ค. 2019 3:30 pm โดย สริญญา สมสา
วิธีสร้าง color palette จากรูปภาพของตัวเองได้ง่ายๆไม่ซ่ำใคร
โดย napharat079 ศ 22 มี.ค. 2019 3:28 pm บอร์ด Graphic design
0
6
ศ 22 มี.ค. 2019 3:28 pm โดย napharat079
อยากทราบวิธีการ เปลี่ยน รูป icon ที่ Tab ของ Browser บน เว็บบอร์ด phpbb
โดย Ittichai_chupol ศ 22 มี.ค. 2019 3:28 pm บอร์ด Programming - PHP
1
9
ศ 22 มี.ค. 2019 3:34 pm โดย mindphp
Stedia Google Game Platform คืออะไร
โดย Ittichai_chupol ศ 22 มี.ค. 2019 2:36 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
6
ศ 22 มี.ค. 2019 2:36 pm โดย Ittichai_chupol
สอนวิธีทำ warp text รูปร่างอักษรแบบเก๋ๆ ด้วย photoshop
โดย napharat079 ศ 22 มี.ค. 2019 1:38 pm บอร์ด Graphic design
0
8
ศ 22 มี.ค. 2019 1:38 pm โดย napharat079
One ui คืออะไร
โดย Ittichai_chupol ศ 22 มี.ค. 2019 1:29 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
9
ศ 22 มี.ค. 2019 1:29 pm โดย Ittichai_chupol
ประโยชน์ของนม
โดย สริญญา สมสา ศ 22 มี.ค. 2019 11:27 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
4
ศ 22 มี.ค. 2019 11:27 am โดย สริญญา สมสา
งานประจำวันที่ 22 มีนาคม 2562
โดย Four ศ 22 มี.ค. 2019 9:04 am บอร์ด M077 - อิษยา งามสอาด
1
5
ศ 22 มี.ค. 2019 6:54 pm โดย Four
งานประจำวันที่ 22 มีนาคม 2562
โดย napharat079 ศ 22 มี.ค. 2019 8:55 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
3
9
ศ 22 มี.ค. 2019 6:56 pm โดย napharat079
งานประจำวันที่ 22 มีนาคม 2562
โดย สริญญา สมสา ศ 22 มี.ค. 2019 8:52 am บอร์ด MT32 - นางสาวสริญญา สมสา
2
11
ศ 22 มี.ค. 2019 6:57 pm โดย สริญญา สมสา
Q - ตอนกดคำนวนแล้วระยะทางไปแสดงทั้ง 2 ช่อง
โดย Parichat พฤ 21 มี.ค. 2019 10:44 pm บอร์ด Joomla Dev
8
19
ศ 22 มี.ค. 2019 4:25 pm โดย tsukasaz
พื้นฐานโปรเเกรม Open ERP
โดย สริญญา สมสา พฤ 21 มี.ค. 2019 9:14 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
18
พฤ 21 มี.ค. 2019 9:14 pm โดย สริญญา สมสา
งานประจำวันที่ 21 มีนาคม 2562
โดย napharat079 พฤ 21 มี.ค. 2019 9:54 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
1
6
พฤ 21 มี.ค. 2019 7:13 pm โดย napharat079
งานประจำวันที่ 21 มีนาคม 2562
โดย Four พฤ 21 มี.ค. 2019 9:31 am บอร์ด M077 - อิษยา งามสอาด
1
6
พฤ 21 มี.ค. 2019 7:05 pm โดย Four
Q - ขอวิธีแสดงแสดงจังหวัดต้นทางและจังหวัดปลายทางโดยใช้ Ajax ในการดึงชื่อจังหวัดต้นทางและปลายทางจากฐานข้อมูลมาแสดง
โดย Parichat พฤ 21 มี.ค. 2019 2:15 pm บอร์ด Joomla Dev
6
27
พฤ 21 มี.ค. 2019 6:40 pm โดย Parichat
Make Up แก้มชมพูใสๆเนียนๆด้วย Photoshop
โดย napharat079 พฤ 21 มี.ค. 2019 6:19 pm บอร์ด Graphic design
0
32
พฤ 21 มี.ค. 2019 6:19 pm โดย napharat079
รัน python3.7 ไม่ได้ เกิดปัญหา mportError: No module named 'encodings'
โดย tatiya พฤ 21 มี.ค. 2019 6:12 pm บอร์ด Programming - C/C++ & java & Python
1
18
พฤ 21 มี.ค. 2019 6:16 pm โดย tatiya
วิธีการส่งค่า เพื่อแสดงค่าใน ส่วนการแสดง topic เว็บบอร์ด phpbb
โดย Ittichai_chupol พฤ 21 มี.ค. 2019 3:39 pm บอร์ด PHP Knowledge
0
7
พฤ 21 มี.ค. 2019 3:39 pm โดย Ittichai_chupol
วิธีปรับรูปสีเป็นขาวดำภายใน 5 วิ ด้วย Photoshop
โดย napharat079 พฤ 21 มี.ค. 2019 3:36 pm บอร์ด Graphic design
0
25
พฤ 21 มี.ค. 2019 3:36 pm โดย napharat079