Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore ปิยะวดี พงษ์สวัสดิ์

ปิยะวดี พงษ์สวัสดิ์

Published by วิทย บริการ, 2022-07-05 03:22:19

Description: ปิยะวดี พงษ์สวัสดิ์

Search

Read the Text Version

ตัวดาํ เนินการ ตวั อยาง คําอธิบาย $a-- แสดงคาตัวแปร $a คงเดมิ กอน จากน้นั จงึ ลดคา ของ $a ไป 1 คา ท่ีมา: (อนรรฆนงค คุณมณี, 2555, หนา 38) 3. ตวั ดาํ เนินการกาํ หนดคา (Assignment Operators) เปน ตวั ดําเนินการท่ีใชกําหนดคาของ มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ตวั แปร หรืออาจเขยี นคาํ ส่งั ในรูปแบบยอ ลงมา เชน x += y กค็ อื x = x+y มดี งั น้ี ตารางท่ี 2.4 ตัวดําเนนิ การกาํ หนดคา การกําหนดคา ใหผ ลเหมือนกบั คาํ อธิบาย $a = $b $a = $b กาํ หนดคา ให $a มคี าเทา กบั $b $a += $b $a = $a + $b กําหนดคา ให $a มีคาเทา กับ $a บวก $b $a -= $b $a = $a - $b กําหนดคาให $a มีคา เทากบั $a ลบ $b $a *= $b $a = $a * $b กาํ หนดคา ให $a มีคาเทากับ $a คูณ $b $a /= $b $a = $a / $b กําหนดคาให $a มคี าเทา กับ $a หารดว ย $b $a %= $b $a = $a % $b กาํ หนดคา ให $a มคี า เทา กบั เศษจากผลลัพธข อง $a หาร ดวย $b $a .= $b $a = $a . $b กําหนดคาให $a มเี ทา กบั ขอ ความ $a ตอดวย ขอความ $b ทม่ี า: (อนรรฆนงค คุณมณ,ี 2555, หนา 39) 4. ตัวดาํ เนินการทางตรรกะ (Logical Operators) เปน ตัวดาํ เนนิ การท่ีใชในการเปรียบเทียบ ทางตรรกศาสตรใหผลลัพธอ อกมาเปน คาจริงและเทจ็ ตารางที่ 2.5 ตัวดําเนนิ การทางตรรกะ ตวั ดําเนนิ การ ตวั อยา ง คําอธิบาย and หรอื && $a and $b คืนคา true เมอื่ $a และ $b มคี าเปนจริงท้ังคู นอกนน้ั $a && $b ผลท่ีไดจะเปนเทจ็ or หรอื || $a or $b คนื คา false เมอื่ $a หรือ $b มคี าเปนเท็จท้ังคู นอกนั้น $a || $b ผลท่ีไดจะเปน จรงิ xor $a xor $b คืนคา true เมอ่ื $a กบั $b มีคา ความจริงไมเหมือนกัน ! !$a ใหคา จริงเม่ือคาของตัวแปรเปนเทจ็ และใหคาเท็จเม่ือคา ของตวั แปรเปน จริง ท่ีมา: (อนรรฆนงค คณุ มณ,ี 2555 หนา 40) 29

5. ตัวดําเนินการเปรียบเทียบ (Comparison Operators) เปนตัวดําเนินการที่ใชในการ เปรยี บเทยี บตวั แปรหนึ่งๆ กบั คา คงท่ใี ดๆ โดยผลลพั ธทีไ่ ดจ ากการเปรยี บเทยี บจะเปน คา จรงิ และเทจ็ ตารางท่ี 2.6 ตัวดาํ เนินการเปรียบเทียบ ตวั ดาํ เนินการ ตวั อยา ง คําอธิบาย == $a == $b คนื คา true เมือ่ $a เทา กับ $b มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง=== $a === $bคืนคา true เมอ่ื $a เทากับ $b และ $a กบั $b มี Data Type เดียวกัน != $a != $b คืนคา true เมอ่ื $a ไมเทากับ $b < > $a <> $b คนื คา true เม่ือ $a ไมเทากับ $b !== $a !== $b คนื คา true เมื่อ $a ไมเทา กับ $b หรอื $a กับ $b ไมใ ช Data Type เดยี วกนั < $a < $b คืนคา true เมอ่ื $a นอยกวา $b > $a > $b คืนคา true เมอ่ื $a มากกวา $b <= $a <= $b คืนคา true เมอ่ื $a นอยกวาหรือเทากับ $b >= $a >= $b คืนคา true เมอื่ $a มากกวา หรอื เทา กับ $b ท่ีมา: (อนรรฆนงค คุณมณ,ี 2555, หนา 40) 6. ตัวดําเนินการระดับบิต (Bitwise Operator) เปนตัวดําเนินการท่ีนําบิตของเลขฐานสอง มาดาํ เนินการ โดยนําขอ มูลมาแปลงเปนเลขฐานสองกอนจึงคอ ยนาํ มากระทํากับตัวดาํ เนนิ การ ตารางท่ี 2.7 ตัวดําเนนิ การระดับบิต ตัวดาํ เนนิ การ ชอ่ื ตัวอยา ง & And $c = $a & $b | Or $c = $a | $b ^ Xor $c = $a ^ $b ~ Not $c = ~$b << Shift left $c = $a << $b >> Shift right $c = $a >> $b ทมี่ า: (อนรรฆนงค คณุ มณ,ี 2555, หนา 41) 7. ตัวดําเนินการเชิงขอความ (String Operator) เปนตัวดําเนินการที่เปนสัญลักษณทาง คณติ ศาสตรทีน่ าํ มาใชกับขอความ ดังนี้ 30

ตารางท่ี 2.8 ตวั ดําเนินการเชงิ ขอ ความ ตัวดําเนนิ การ ตัวอยาง คําอธิบาย . $a . $b เชอ่ื มตอขอความ $a กับขอ ความ $b .= $a .= $b นาํ ขอความอน่ื มาเช่อื มตอกบั ขอความเดมิ ทม่ี า: (อนรรฆนงค คณุ มณ,ี 2555, หนา 42) มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงการใชง านคา คงที่ ในการประมวลผลขอมูลบอยครั้งท่ีเราตองใชขอมูลที่มีคาซํ้าเดิมอยูบอยๆ แทนท่ีเราจะ กําหนดเปน ตวั แปร แตเ ราจะใชก ารกาํ หนดเปน คาคงที่ (Constant) แทน รปู แบบ define(ชอ่ื คา คงท่,ี ขอมลู ทก่ี ําหนดเปนคา คงท่)ี ; สาํ หรบั การกําหนดช่อื คา คงที่เพ่อื ไมใ หเ ปนการสับสนกับช่ือของตัวแปร เรามักจะกําหนดเปน ตวั อักษรพมิ พใ หญทง้ั หมด คา คงท่ีของระบบและตวั แปรระบบ บอยคร้ังท่ีเราตองการทราบขอมูลเกี่ยวกับระบบ เชน เวอรชันของ PHP, ระบบปฏิบัติการท่ี เราใชง าน เปน ตน โดยจะมีคา ระบบที่ใชง านบอย ๆ ดงั นี้ ตารางท่ี 2.9 คา คงทรี่ ะบบ คาคงท่ีระบบ ความหมาย PHP_VERSION เวอรช น่ั หรือรุนภาษาของ PHP PHP_OS ระบบปฏบิ ตั ิการท่ีกาํ ลงั รนั สคริปต PHP TRUE คอื คา จรงิ FALSE คอื คาเทจ็ _FILE_ ชื่อพาธ และชอื่ ไฟลสครปิ ตท ี่กําลงั ใชงาน ทีม่ า: (อนรรฆนงค คุณมณี, 2555, หนา 43) นอกจากคาคงท่ีท่ีใหขอมูลเก่ียวกับระบบแลว ยังมีตัวแปรระบบอยูเชนกันที่จะใหขอมูล เก่ียวกบั ระบบ ซึง่ คาท่ีเปล่ยี นแปลงในตัวแปรเหลานเี้ ราจะไมไดกําหนด แตจะเปนเว็บเซิรฟเวอรเปนผู กําหนดเราเพียงดงึ ขอมลู ขน้ึ มาอา นอยา งเดยี ว มีดงั นี้ 31

ตารางที่ 2.10 ตัวแปรระบบ ความหมาย ตวั แปรระบบ SCRIPT_NAME ช่ือพาธ และช่อื ไฟลสครปิ ตท ่ีกําลังใชงาน SERVER_NAME ช่ือของเซิรฟ เวอร เชน www.myPHPscript.net SERVER_SOFTWARE คือ คา จริง มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง SERVER_PROTOCOL โปรโตคอลดานเน็ตเวริ คท่ีใช SERVER_PORT หมายเลขพอรตทีใ่ ชงาน REQUEST_TIME เวลาทมี่ ีการรองขอใหรนั สคริปต REQUEST_METHOD วธิ ีการเปด สครปิ ตจะเปน GET หรือ POST QUERY_STRING ขอ มลู ท่ีตอทา ย URL เมอ่ื เราเรยี กเปดสคริปตด วยวิธี GET DOCUMENT_ROOT ชื่อพาธเตม็ ๆ ของ root directory HTTP_USER_AGENT ชอ่ื เบราวเ ซอรท ใ่ี ชง าน HTTP_CONNECTION สถานะการเชื่อมตอ HTTP_ACCEPT_LANGUAGE ภาษาสครปิ ตท ่ีสามารถใชงานรวมกนั ได ทม่ี า: (อนรรฆนงค คณุ มณ,ี 2555, หนา 44) (อนรรฆนงค คุณมณ,ี 2555) บทสรปุ ภาษา php เปนภาษาที่ไดรับความนิยมเปนอยางมากในการพัฒนาเว็บไซตแบบ Dynamic Programming ที่สามารถคํานวณโตตอบกับผูใช มีฐานขอมูล และประมวลผลตามเง่ือนไขตาง ๆ ได ซง่ึ บทน้ีเราไดท าํ ความรูจกั กับโครงสรางของภาษา PHP คําสั่งสําหรับแสดงผล รูปแบบการเขียนคําสั่ง PHP การเขียนคําอธบิ าย คําสงวน ขอมูล ตัวแปร และชนิดของขอมูล ตัวดําเนินการ และคาคงที่ของ ภาษา PHP เพอ่ื ชว ยใหเ ว็บไซตม ีความสมบรู ณใ นการทํางาน และรองรบั รปู แบบการทํางานแบบตางๆ 32

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงคาํ ถามทบทวน 1. PHP คืออะไร มีความเปน มาอยา งไร 2. PHP มลี ักษณะเดน อยา งไร 3. โครงสรา งของภาษา PHP มกี ่ีรปู แบบอะไรบาง 4. จงยกตัวอยา งคําสงั่ สําหรบั แสดงผลในภาษา PHP 5. PHP มรี ูปแบบการเขียนก่วี ิธี อะไรบาง 6. การแทรกคาํ อธิบายมปี ระโยชนอยา งไร มีกว่ี ธิ ี อะไรบา ง 7. จงอธิบายความหมายของตัวแปร (Variable) 8. ตวั แปร (Variable) มีกี่ชนิด อะไรบาง 9. การประกาศตัวแปรในภาษา PHP มีขอกาํ หนดอยางไร 10. ชนิดของตวั แปรในภาษา PHP มกี ี่ชนดิ อะไรบา ง 33

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงเอกสารอา งอิง คะชา ชาญศิลป. (2553). คูมือเรียน WEB Programming ดวย PHP, MySQL และ AJAX. กรุงเทพฯ : โปรวิชน่ั . บญั ชา ปะสลี ะเตสงั . (2557). พัฒนาเว็บแอปพลิเคชัน่ ดวย PHP รวมกับ MySQL และ jQuery. กรงุ เทพฯ : ซเี อด็ ยูเคชนั่ . ปรญิ ญา นอยดอนไพร. (2556). การเขียนโปรแกรมบนเว็บดวย PHP รว มกบั ฐานขอมูล MySQL. สรุ าษฎรธ านี : มหาวทิ ยาลยั ราชภัฏสรุ าษฎรธ าน.ี อนรรฆนงค คุณมณี. (2555). พัฒนาเวบ็ App แบบมืออาชีพดวย PHP+AJAX และ jQuery. นนททบุรี : ไอซีดี. 34

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง แผนบรหิ ารการสอนประจําบทท่ี 3 หัวขอ เนอื้ หา 1. สวนประกอบของประโยคภาษา PHP 2. คาํ สง่ั ควบคมุ ทิศทางการทํางาน 3. การใชคําสัง่ if 4. การใชค าํ สงั่ if else 5. การใชค าํ สง่ั else if 6. การใชคาํ สงั่ switch 7. คาํ สงั่ วนซํา้ หรือการทําซา้ํ (Loop) 8. คําสัง่ for 9. คาํ ส่งั while 10. คาํ สง่ั do… while 11. วนรอบสมาชิกทุกตัวในอารเรยด ว ย foreach 12. คําสัง่ ออกจากการทํางานดว ย continue, exit และ break วัตถปุ ระสงคเชิงพฤติกรรม เมอื่ นักศกึ ษาเรียนจบบทเรยี นน้ีแลว สามารถ 1. อธิบายสวนประกอบของประโยคภาษา PHP ได 2. อธบิ ายคําส่งั ควบคมุ ทิศทางการทาํ งานได 3. อธบิ ายคําส่ังวนซํา้ หรือการทําซ้าํ ได 4. อธิบายคาํ สงั่ ออกจากการทาํ งานได 5. สามารถเขยี นโปรแกรมคําส่งั ควบคมุ ทิศทางการทาํ งานได 6. สามารถเขยี นโปรแกรมวนซา้ํ หรือการทําซ้ําได วิธสี อนและกจิ กรรมการเรยี นการสอน 1. วิธสี อน 1.1 วธิ กี ารสอนแบบบรรยาย โดยใหนกั ศกึ ษาฟงบรรยายจากเอกสารประกอบการสอน วิชา การพฒั นาฐานขอมูลบนเวบ็ 1.2 อภปิ รายรว มกนั ในช้นั เรยี น 1.3 กิจกรรมกลมุ 35

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง 2. กจิ กรรมการเรียนการสอน 2.1 คาํ ถามทบทวน 2.2 แบบฝก ปฏบิ ตั ิ 2.3 Active Learning แบบ PLC 2.4 เกมตอบคาํ ถามบน Kahoot สื่อการเรยี นการสอน 1. เอกสารประกอบการสอน วชิ า การพัฒนาฐานขอ มลู บนเว็บ 2. เวบ็ ไซตท่มี เี นื้อหาเกีย่ วของกับรายวชิ า 3. สื่อสงั คมออนไลน 4. เกมออนไลน Kahoot การวดั ผลและการประเมินผล 1. สงั เกตการณม ีสวนรว ม การรว มกจิ กรรม และการตอบคาํ ถาม 2. การทํางานตามที่ไดร ับมอบหมาย 3. การทาํ คําถามทบทวน 4. การทาํ แบบฝกปฏิบัติ การเขยี นคาํ สง่ั ควบคุมทิศทาง และการทาํ ซํา้ 36

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง บทที่ 3 การเขยี นคาํ สง่ั ควบคมุ ทศิ ทาง และการทําซ้าํ ในการเขียนโปรแกรม อาจมีเง่ือนไขหรือขอกําหนดบางอยางท่ีผูใชตองการใหโปรแกรม ทํางานแตกตางกันไป การตัดสินใจจึงเปนกระบวนการท่ีสําคัญมากทั้งในชีวิตประจําวันและการเขียน โปรแกรม ยกตัวอยางเชน ถา คุณมีเงนิ มากกวา 100 บาท คุณจะซอ้ื วิดีโอเกม แตถาคุณมีเงินไมพอคุณ จะซือ้ หนังสอื แทน เปนตน หากผพู ฒั นาตอ งการพัฒนาเวบ็ ไซตท ม่ี ฟี ง กชันการทํางานท่ีสามารถโตตอบ กับผูใชไดอยางมีประสิทธิภาพ พ้ืนฐานการเขียนคําส่ังควบคุมทิศทางการทํางาน จึงเปนส่ิงสําคัญ เบอ้ื งตน ทต่ี อ งศึกษาและทําความเขา ใจ สว นประกอบของประโยคภาษา PHP การเขียนภาษา PHP ภายใน 1 ไฟล ตองประกอบดว ย 3 สว นหลกั ดงั น้ี 1. Expression คอื การกาํ หนดคา ของตัวแปรหน่ึงๆ เชน $a = 5 2. Statement คือ เงื่อนไขในการนํา Expression มาใชงาน อาจเปนประโยคท่ีมีความ หลากหลายในรูปแบบการทํางาน ซ่งึ กค็ อื ประโยคควบคุมการทาํ งานของโปรแกรมนนั่ เอง 3. Function คือ คาํ สงั่ หรือชุดคาํ ส่งั ทใ่ี ชใ นโปรแกรม อาจเปน ฟง กช ันสําเร็จรูปในภาษา PHP หรืออาจเปน ฟงกชันท่ผี พู ัฒนาไดส รา งเกบ็ ไวเพื่อเรยี กใชงานในภายหลัง คาํ สัง่ ควบคมุ ทิศทางการทาํ งาน การใชคําสงั่ if คําสงั่ if ใชใ นการเปรียบเทยี บเง่ือนไขวาตรงตามที่ตองการหรือไม หากตรงกับเง่ือนไข จะทํา ตามคําสงั่ ทก่ี ําหนดไวแตห ากไมตรงกบั เงื่อนไขก็จะขา มไปยังคําส่ังถัดไป โดยมรี ปู แบบการเขยี นดังนี้ if (เงื่อนไข) { ส่งิ ทีต่ องทาํ เม่ือเงอื่ นไขเปนจริง } 37

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตัวอยา งการใช if แบบเงื่อนไขเดียว if ($a>5) { echo “ตัวแปร a มากกวา 5” ;”; } ตวั อยา งการใช if แบบหลายเง่อื นไข if ($a>5 && $a!=0) { echo “ตวั แปร a มากกวา 5 และไม เทากับ 0” ;”; } การใชค ําสัง่ if else คําสั่ง if else นั้น เปนการกําหนดทางเลือกอ่ืนๆ กรณีโปรแกรมน้ันไมตรงกับเงื่อนไขที่อยูใน if โปรแกรมก็จะทํางานคําสั่งตางๆ ที่อยูในวงเล็บปกกาของ else แทน ซึ่งโครงสรางของ if else มี รูปแบบ ดงั น้ี if (เงอื่ นไข) { สิ่งท่ีตอ งทาํ เม่ือเง่อื นไขเปนจริง } else { ส่งิ ทตี่ อ งทาํ เมือ่ เงอ่ื นไขเปนเทจ็ } 38

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตวั อยา งการใช if else $a = 6; if ($a>5) { echo “ตวั แปร a มากกวา 5” ;” //แสดงบรรทดั นีก้ รณตี รงตามเงอื่ นไข if } else { echo “ตัวแปร a นอยกวา หรือเทา กับ 5” ;”;//แสดงบรรทัดนก้ี รณไี มต รงตามเง่ือนไข if } จากตวั อยางดานบน จะแสดงผลลัพธ “ตัวแปร a มากกวา 5” เนื่องจาก $a มีคาเทากับ 6 ซงึ่ มากกวา 5 จึงตรงตามเงื่อนไข if ซง่ึ คา ท่ีไดจ ากการพิจารณาเงอื่ นไขใน if มดี ังน้ี - คา จรงิ (True) หมายถงึ ผลการเปรียบเทียบไดคาทีต่ รงตามเงื่อนไข - คาเท็จ (False) หมายถงึ ผลการเปรยี บเทียบไดค าทไี่ มต รงตามเง่อื นไข การใชค าํ สั่ง else if การใชเงื่อนไข else if เราจะใชในกรณีท่ีมีเงื่อนไขคําส่ังเยอะๆ ซึ่งแตละเง่ือนไขน้ันแตกตาง กนั ซงึ่ สามารถพูดไดว า else if นั้นเปนสง่ิ ทมี่ าเสริมใหกบั คาํ สงั่ if นน้ั สมบรู ณรัดกุมกับเงื่อนไขมากขึ้น เราสามารถเขียน else if เพิ่มมาก่ีอันก็ได แตตองใชควบคูกับ if เสมอ (หามเขียนโดยไมมี if) อีกท้ัง เรายังสามารถนํามาใชค วบคูกบั if else ไดดวย แบบวา หากไมเ ขาเง่ือนไขขอใดขอหนึ่งก็ตองเขา else ซง่ึ เราสามารถเขยี นโครงสรา ง else if ไดด งั น้ี if (เง่ือนไขที่ 1) { ส่งิ ท่ตี องทาํ เมือ่ เง่อื นไขท่ี 1 เปนจริง } else if (เง่อื นไขท่ี 2) { สิ่งท่ตี องทาํ เมอ่ื เงอื่ นไขท่ี 2 เปนจริง } else { สิง่ ทีต่ อ งทาํ เมื่อไมตรงตามเง่ือนไขทง้ั 2 ที่กาํ หนด } 39

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงขอสังเกต else ตอ งอยูทายเสมอ else if จะอยูต รงกลางระหวาง if กับ else ตวั อยางการใชเงอ่ื นไข else if กับโปรแกรมตัดเกรด $score = 77 If ($score>=80) { $grade = “A” ; } else if ($score>=70) { $grade = “B” ; } else if ($score>=60) { $grade = “C” ; } else if ($score>=50) { $grade = “D” ; } else { $grade = “E” ; } echo “คะแนนของคณุ คอื ”. $score. “ดังนน้ั เกรดทไ่ี ด คือ”. $grade ; จากชดุ คาํ ส่ังดา นบนจะไดผลลัพธค ือขอ ความ ดังนี้ คะแนนของคุณ คือ 77 ดงั นน้ั เกรดที่ได คอื B การใชคาํ สั่ง switch บางกรณีถาตองการตรวจสอบเง่ือนไขจํานวนมากๆ สามารถใชคําส่ัง Switch ได โดยมี รปู แบบการเขยี น ดงั น้ี switch ($a) { case 1 : คาํ สัง่ PHP ; // ถา $a มีคา เทากบั 1; break; case 2 : คาํ ส่ัง PHP ; // ถา $a มีคา เทากับ 2; break; default : คาํ สงั่ PHP ; // ถา $a ไมเทากับ 1 หรือ 2; } จากชุดคําส่ังดานบนการทํางานของคําสั่งนี้เร่ิมตนจาก ตรวจสอบตัวแปร $a ถาเทากับ 1 โปรแกรมจะเขาไปรันคําส่ัง PHP ใน case 1 เม่ือรันคําส่ังเสร็จแลวก็จะออกจากคําส่ัง switch ทันที ดวยคําส่ัง break; 40

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตวั อยา งการใชค าํ สัง่ switch switch ($a) { case 1 : echo “No.1”; break; case 2 : echo “No.2”; break; case 3 : echo “No.3”; break; default : echo “ไมใช No.1, No.2 และ No.3”; } คาํ ส่ังวนซ้ําหรือการทาํ ซาํ้ (Loop) การเขียนโปรแกรม หลักการวนซํ้าหรือทําซ้ํานั้นเปนสิ่งที่สําคัญในการที่จะทําใหโปรแกรม สามารถทํางานดวยคําสั่งเดิมซ้ําๆไดอยางมีประสิทธิภาพ ยกตัวอยาง เชน การแสดงรายช่ือของ สมาชกิ ของเวบ็ ไซตจํานวน 20 คน นี่เปนตัวอยางที่ตองใชคําสั่งวนซํ้าในการจัดการ โดยมีแนวคิดท่ีวา เม่อื คุณสามารถแสดงขอ มลู ของสมาชกิ คนแรกไดแ ลว คนตอ ไปกส็ ามารถทําในแบบเดียวกันได ซ่ึงการ เขียนคําสั่งวนซ้ําหรือการทําซํ้า (Loop) น้ันเปนพื้นฐานที่จําเปนตองใชในทุกภาษา โดยมีใหเลือกใช หลายรปู แบบ ดังนี้ คําสัง่ for เปนการวนซ้าํ ดว ยจํานวนรอบการวนซ้ําท่ีแนนอน ซึ่งคําสั่งนี้จะใชตัวแปรนับจํานวนรอบของ การวนซา้ํ มกี ารกําหนดเงื่อนไขการสน้ิ สุดการทําซ้ํา และมีการเพิ่มคาตัวแปรการนับรอบขึ้นในทุกครั้ง ที่วนซํ้า รูปแบบการใชคาํ สั่ง for for (ประกาศตัวแปรสําหรบั เริ่มตน ; จดุ สนิ้ สุดของการทาํ ซ้ํา; การเปล่ยี นแปลงคาของตัวแปร) { คําส่ังท่ีตอ งการใหทําซํ้า ; } 41

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงการทาํ งานของคาํ สั่ง for 1. ต้งั คาจดุ เรมิ่ ตน และสน้ิ สดุ ของโปรแกรม 2. เรม่ิ ทํางานตามคําสัง่ ของโปรแกรม 1 ครงั้ และเปลี่ยนแปลงคาเร่ิมตน ของตัวแปรซึ่ง เปรียบเสมอื นการนับรอบ 3. กลับไปตรวจสอบวา คา ใหมทไ่ี ดม ีคา เทากับจดุ ส้ินสุดของโปรแกรมหรือยัง ถายังใหท าํ ตามคําสงั่ ของโปรแกรมตอไป ทํางานวนซาํ้ ในขอ 1-3 จนกวา จะมีคา เทา กับจุดสิน้ สดุ ของโปรแกรมจงึ ออกจากการวนซํ้าและไปทําคําสัง่ ถัดไป ตัวอยางการใชคาํ สงั่ for <?php for ($a=0; $a<=9; $a++) { echo “วนรอบคร้ังท่ี : ” , $a+1 , “ สุมตัวเลขได ” , rand(0,9) , “<br>” ; } ?> สาํ หรบั ตัวอยางนี้เปน การวนรอบดวยคาํ ส่งั for โดยใชต ัวแปร $a ทําหนา ที่นับการวนรอบ แตล ะรอบมีการสุมตวั เลขขึ้นมาแลว แสดงตวั เลขทส่ี มุ ขึ้นมาดว ย 1. ใชค าํ ส่งั for วนรอบโดยมีตัวแปร $a นบั การวนรอบเริ่มตน การวนรอบที่ 0 และส้นิ สุดที่ 9 มกี าร เพม่ิ คาตวั แปร $a ทีละหน่งึ 2. แสดงคา $a+1 และแสดงสุมตัวเลขที่มคี า ระหวา ง 0-9 ออกมา ผลการทาํ งานเปน ดงั นี้ ภาพประกอบท่ี 3.1 ผลการทํางานของการใชคาํ สัง่ for ทีม่ า: (ภาพโดยผูเขยี น, 2564) 42

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงคาํ สัง่ while เปน การวนซํา้ จนกวา เงื่อนไขจะเปน เทจ็ เปน การวนซ้าํ ดว ยจาํ นวนรอบทไี่ มแ นนอน จะตอง ตรวจสอบเง่ือนไขวา จะวนซํ้าตอไปหรือไม หากเง่ือนไขยังเปน จรงิ อยจู ะวนซ้าํ ตอไป แตถาเงอื่ นไขเปน เทจ็ กจ็ ะหยดุ การวนซํา้ รูปแบบการใชคําสัง่ while while (เงอื่ นไข) { คาํ สั่งทตี่ อ งการใหโปรแกรมทํา } การทํางานของคาํ สั่ง while 1. จะตรวจสอบตัวแปรกอนวา ตรงตามเง่ือนไขหรือไม ถาตัวแปรตรงตามเงื่อนไขจะเขา ไปทาํ ตามคําสัง่ ภายในวงเล็บปกกา ซง่ึ จะมีการเปลีย่ นแปลงคา ของตัวแปรภายในวงเลบ็ ปกกา 2. หลงั จากน้ันนําตวั แปรใหมทไ่ี ดก ลบั มาตรวจสอบเง่ือนไขอีกครั้ง ถายังเปน จรงิ กเ็ ขาไปทาํ ตามคําสง่ั ท่ี อยใู นวงเล็บปก กาอีก ทาํ งานวนซ้าํ จนกวาเงอ่ื นไขจะเปนเท็จ ตัวอยางการใชคาํ สงั่ while <?php $a=1; $b= rand(3,12); // สุม คา ระหวา ง 3 ถงึ 12 echo “ตัวแปร a ใชนบั รอบ = ” , $a , “ ตัวแปร b ใชเ ปนจุดหยุดในการวนซํา้ = ”, $b , “<hr>”; while ($a<=$b) { echo “วนรอบครั้งท่ี : ” , $a , “<br>” ; $a++; } ?> สําหรบั ตัวอยา งนเ้ี ปน การวนรอบดวยคําส่งั while มกี ารทาํ งาน ดงั น้ี 1. กําหนดคาของตัวแปร $a = 1 เปน คาเรมิ่ ตน และสมุ ตวั เลขระหวาง 3 ถึง 12 2. แสดงคา ของตัวแปร $a และ $b ที่ไดจากการสมุ 3. คําสง่ั while ตรวจสอบเง่ือนไขคา ตัวแปร $a นอ ยกวาหรือเทากับ $b หรอื ไม ถาเปนจริงจะเขา ไป ทําตามคําส่งั ที่อยใู นวงเลบ็ ปกกา คือแสดงคา คา ตวั แปร $a แลวเพ่มิ คา ตวั แปร $a ทีละหน่ึงไปเร่ือยๆ ทาํ งานวนซํ้าจนกวาเงื่อนไขจะเปน เทจ็ จงึ หยุดการทาํ งาน 43

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงผลการทาํ งานเปน ดังน้ี ภาพประกอบท่ี 3.2 ผลการทํางานของการใชคําสงั่ while ทม่ี า: (ภาพโดยผูเขยี น, 2564) คาํ ส่งั do… while มกี ารทํางานคลายคําสัง่ while แตตา งกนั ตรงที่คาํ สง่ั do… while จะไมมีการตรวจสอบ เง่อื นไขการวนซ้ํากอนเขา สกู ารทาํ งานในรอบแรก แตจ ะตรวจสอบเง่อื นไขเม่ือทํางานตามคําส่งั เสรจ็ ไปแลว อยางนอย 1 รอบ รูปแบบการใชค ําส่ัง do… while do { คําสง่ั ทตี่ อ งการใหโ ปรแกรมทํา ; การเปลี่ยนแปลงคาของตวั แปร ; } while (เง่ือนไข) 44

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตวั อยา งการใชค าํ สัง่ do… while <?php $a=1; $b= rand(3,12); // สมุ คา ระหวาง 3 ถงึ 12 echo “ตัวแปร a ใชน บั รอบ = ” , $a , “ ตวั แปร b ใชเปน จดุ หยดุ ในการวนซํ้า = ”, $b , “<hr>”; do { echo “วนรอบครงั้ ท่ี : ” , $a , “<br>” ; $a++; } while ($a<=$b) ?> สําหรบั ตัวอยางน้ีเปนการวนรอบดว ยคําสง่ั do… while มกี ารทาํ งาน ดงั น้ี 1. กาํ หนดคาของตัวแปร $a = 1 เปน คาเรมิ่ ตน และสุมตัวเลขระหวา ง 3 ถึง 12 2. แสดงคา ของตัวแปร $a และ $b ที่ไดจ ากการสุม 3. คาํ สัง่ do จะแสดงผลการวนรอบออกทางหนาจอ และเพ่ิมคา ตวั แปร $a กอนที่จะนาํ ไป เปรยี บเทียบเงอื่ นไขเพื่อทํางานในรอบตอไป 4. ในสวนของ while จะมเี ง่อื นไขตรวจสอบการวนรอบ ผลการทาํ งานเปน ดังนี้ ภาพประกอบที่ 3.3 ผลการทํางานของการใชคาํ สงั่ do… while ทม่ี า: (ภาพโดยผูเ ขียน, 2564) 45

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงวนรอบสมาชกิ ทุกตัวในอารเรยด ว ย foreach รูปแบบการใชค าํ สง่ั foreach foreach ($ตัวแปรอารเ รย as $ตัวแปรทเ่ี กบ็ คาอารเ รย) { คาํ สง่ั ใดๆ ; } แตละรอบของการวนซ้ํา คําสั่ง foreach จะดึงขอมูลจากสมาชิกแตละตัวของตัวแปร อารเรยมาใสในตัวแปรที่เก็บคาสมาชิกทีละตัว โดยจะดึงมาต้ังแตอินเด็กซตัวแรกไปจนถึงอินเด็กซตัว สุดทา ยซึ่งจะเปลยี่ นแปลงคาตลอด ตัวอยางการใชค าํ สง่ั foreach <?php $month= array(“มกราคม”, “กมุ ภาพนั ธ”, “มนี าคม”, “เมษายน”); $b= 0; foreach ($month as $x) { echo “อารเรย\\$month[$b] = $x <br>”; $b++; } ?> ผลการทาํ งานเปน ดงั น้ี ภาพประกอบท่ี 3.4 ผลการทํางานของการใชคําส่งั foreach ท่มี า: (ภาพโดยผเู ขียน, 2564) 46

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงคําสัง่ ออกจากการทํางานดวย continue, exit และ break เมอื่ มีการทํางานแบบวนซํ้า บางคร้ังอาจจําเปนตองหยุดการทํางานน้ันทันที หรือออกจาก การทาํ งานทันที ซ่งึ สามารถทําไดโดยกลุมคําสั่งทใ่ี ชก ระโดดขา มการทํางาน ดังนี้ - คาํ สัง่ break เปนคําสงั่ ทจี่ ะกระโดดออกจากการทํางานน้นั ไปเลย - คําส่ัง continue เปนคําสั่งท่ีคลายกับ break แตใชเฉพาะกับการวนซํ้าเทาน้ัน ถาเจอ คาํ สง่ั นแี้ ลวจะถอื วา การวนซํ้าในรอบนน้ั เสรจ็ สิน้ จะกระโดดไปสูการวนซํ้าในรอบถัดไป โดยท่ีไมสนใจ คําสง่ั ทเี่ หลืออยใู นการวนซํ้ารอบนนั้ ๆ - คาํ สั่ง exit เปนการจบการทํางานของไฟลส คริปตน ัน้ ไปทันที (อนรรฆนงค คุณมณี, 2555) บทสรุป ในการเขียนโปรแกรม อาจมีเงื่อนไขหรือขอกําหนดบางอยางที่ผูใชตองการใหโปรแกรม ทาํ งานแตกตางกันไป การตัดสินใจจึงเปนกระบวนการที่สําคัญมากท้ังในชีวิตประจําวันและการเขียน โปรแกรม หากผูพ ฒั นาตอ งการพัฒนาเวบ็ ไซตท ี่มฟี งกช นั การทาํ งานทสี่ ามารถโตตอบกับผูใชไดอยางมี ประสิทธิภาพ พื้นฐานการเขียนคําสั่งควบคุมทิศทางการทํางาน ไดแก if , if else , else if , switch ซงึ่ เปนคําสั่งที่ใชในการเปรียบเทียบเงื่อนไขเพ่ือควบคุมทิศทางในการทํางานของโปรแกรม และคําสั่ง วนซาํ้ หรือทาํ ซา้ํ นัน้ เปน สิง่ ท่ีสําคญั ในการท่จี ะทาํ ใหโปรแกรมสามารถทํางานดวยคําสั่งเดิมซํ้าๆไดอยาง มปี ระสทิ ธิภาพ ไดแก for, while, do.. while, foreach คําสั่งออกจากการทํางาน ไดแก continue, exit และ break ซ่ึงคําส่ังเหลานี้เปนพื้นฐานสําคัญที่ใชในการเขียนโปรแกรมเพ่ือใหโปรแกรมทํางาน ไดอยางมปี ระสทิ ธิภาพตามตองการ คําถามทบทวน 1. คาํ สงั่ ทใ่ี ชใ นการควบคุมทศิ ทางการทาํ งาน มอี ะไรบาง แตกตา งกนั อยางไร 2. คําสั่งวนซา้ํ หรือทําซ้ํา มอี ะไรบาง แตกตางกนั อยา งไร 3. คําส่ังออกจากการทาํ งาน มีอะไรบา ง แตกตา งกันอยางไร 4. การเขยี นโปรแกรมเพื่อคัดเลอื กบุคคลเขาทํางานของบริษัทแหงหนึง่ มเี งื่อนไขวา ถา สอบขอ เขยี น ผาน ใหมาสอบสัมภาษณในวันทําการถัดไป ควรใชคําสงั่ ควบคมุ อะไร เพราะอะไร 5. การเขียนโปรแกรมเพื่อคาํ นวณคานายหนาใหกบั พนักงานขาย โดยมเี งอ่ื นไขในการคํานวณคา นายหนา คอื ถา ยอดขายนอ ยกวา หรือเทากับ 500,000 บาท จะไดรับคา นายหนา 5% ของยอดขาย ถา ยอดขายมากกวา 500,000 บาท จะไดรับคา นายหนา 10% ของยอดขาย ควรใชคําส่ังควบคมุ อะไร เพราะอะไร 6. จากโคดตอ ไปนี้ผลลัพธที่ไดคือเทาใด 47

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง <?php $x=3; $y=1; if ($x == $y) $x=$y; else $x += $y; echo \"x = \".$x; ?> 7. จากโคดตอ ไปน้ีผลลพั ธท่ไี ดคอื เทา ใด <?php $x=100; $i=1; $y=5; while($x<=100) { $x= $x+$y*$i; si=$i+1; } echo \"x= $x , y= $y , i= $i\"; ?> 8. จงอธิบายการทาํ งานของโปรแกรม <?php for ($i = 1; $i <= 100; $i++ ) { echo $i . \"<br>\"; } ?> 48

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง9. foreach คืออะไร 10. จากโปรแกรมคา $i ผลลัพธที่ไดมีคาเทา ใด <?php $i=0; do { echo \"Hello ... <br>\"; if ($i == 5) { break; $i++; } } while ($i<7); echo $i; ?> เอกสารอางอิง อนรรฆนงค คุณมณ.ี (2555). พฒั นาเว็บ App แบบมืออาชีพดวย PHP+AJAX และ jQuery. นนททบรุ ี : ไอซดี ี. 49

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง แผนบรหิ ารการสอนประจาํ บทที่ 4 หวั ขอเนอ้ื หา 1. ฟง กชันคืออะไร 2. ประเภทของฟง กชัน 3. สว นประกอบของฟง กชัน 4. การสรางฟงกชันไวใชง านและวิธกี ารเรียกใชงานฟง กชนั 5. ตวั แปรสงและตัวแปรรบั 6. การสง ผา นคา ของตัวแปรใหแ กฟง กชนั 7. การคนื คา จากฟงกช นั 8. ขอบเขตการเรยี กใชตัวแปร 9. ฟงกชนั เรยี กใชตัวเอง (Recursive Function) 10. ฟงกชนั include 11. ฟงกช นั function_exists 12. ฟง กชนั มาตรฐานของภาษา PHP 13. ฟงกช ันเก่ียวกบั คณิตศาสตร 14. ฟงกชันเกยี่ วกบั เวลาและวนั ท่ี 15. ฟง กช ันเกี่ยวกบั สตริง วตั ถปุ ระสงคเชิงพฤติกรรม เมือ่ นกั ศกึ ษาเรยี นจบบทเรยี นน้แี ลว สามารถ 1. บอกความหมายและประเภทของฟง กช นั ได 2. บอกสวนประกอบของฟง กชันได 3. อธิบายวิธกี ารสรางฟง กชันและวิธีการเรียกใชงานฟง กชันได 4. อธิบายตวั แปรสง และตวั แปรรับของฟง กช ันได 5. อธิบายการสง ผานคา ของตวั แปรใหแกฟง กช นั ได 6. อธิบายวธิ ีการคนื คา จากฟงกชันได 7. บอกขอบเขตการเรยี กใชตัวแปรของฟงกชนั ได 8. อธบิ ายหลักการทาํ งานของฟงกช ันเรียกใชตัวเอง 9. อธิบายหลกั การทํางานของฟงกชนั include ได 10. อธบิ ายหลกั การทาํ งานของ function_exists ได 11. บอกฟงกช ันเกี่ยวกับคณิตศาสตรแ ละอธบิ ายวิธกี ารใชง านได 50

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง 12. บอกฟงกช นั เกยี่ วกบั เวลาและวนั ทแ่ี ละอธิบายวธิ กี ารใชงานได 13. บอกฟงกช ันเกี่ยวกับสตริงและอธิบายวิธกี ารใชง านได วธิ ีสอนและกจิ กรรมการเรียนการสอน 1. วิธีสอน 1.1 วธิ กี ารสอนแบบบรรยาย โดยใหนักศกึ ษาฟงบรรยายจากเอกสารประกอบการสอน วชิ า การพฒั นาฐานขอ มูลบนเวบ็ 1.2 อภิปรายรวมกันในช้นั เรียน 1.3 รว มกิจกรรมเกมออนไลน ถาม-ตอบ 2. กิจกรรมการเรียนการสอน 2.1 คําถามทบทวน 2.2 แบบฝก ปฏบิ ัติ เรอ่ื ง การสรา งฟง กช ันในภาษา PHP 2.3 Active Learning แบบ PLC 2.4 กจิ กรรมเกมออนไลน ถาม-ตอบ สอ่ื การเรียนการสอน 1. เอกสารประกอบการสอน วชิ า การพัฒนาฐานขอมูลบนเวบ็ 2. เวบ็ ไซตท ่มี เี นอื้ หาเกย่ี วของกบั รายวชิ า 3. ส่ือสงั คมออนไลน 4. เกมออนไลน ถาม-ตอบ การวดั ผลและการประเมนิ ผล 1. สังเกตการณมีสว นรวมและการถาม-ตอบ 2. การทาํ งานตามท่ีไดร ับมอบหมาย 3. การทําคาํ ถามทบทวน 4. การทาํ แบบฝก ปฏิบัติ เร่อื ง การสรางฟง กช ันในภาษา PHP 51

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง บทที่ 4 การใชงานฟงกชนั ในการเขียนโปรแกรมบางโปรแกรมมีความจําเปนตองทํางานในลักษณะเดิมซํ้า ๆ กันอยูใน แตละสวนของโปรแกรม ชุดคําส่ังที่ทํางานซ้ํา ๆ กันน้ัน ทําใหตองเสียเวลาในการพิมพคําส่ังเดิมทุก ครั้งท่ีตองการ ซ่ึงมีโอกาสที่จะทําใหเกิดขอผิดพลาดข้ึนไดระหวางการเขียนโปรแกรม โดยการเขียน โปรแกรมน้ันสามารถแยกชุดคําสั่งท่ีใชบอย ๆ หรือซ้ํา ๆ กันน้ีออกมา แลวสรางข้ึนเปน ฟงกชัน (Functions) เอาไวเรียกใชงาน ทําใหไมจําเปนตองเขียนชุดคําส่ังนั้น ซ้ํา ๆ กันอีก เพ่ือลดระยะเวลา และลดขอผิดพลาดที่อาจเกิดข้ึนในการเขียนโปรแกรม โดยจะกลาวถึงฟงกชัน (Functions) ในภาษา PHP มีรายละเอียด ดงั น้ี ฟงกชันคืออะไร ฟงกชัน (Functions) คือ การเขียนคําส่ังยอย ๆ ไวในบล็อกของคําส่ังเพ่ือทํางานช้ินเล็ก ๆ ใหส าํ เรจ็ และสามารถนําไปทาํ งานรว มกับคาํ สง่ั หรอื ฟง กชันอนื่ ๆ ในโปรแกรมใหโ ปรแกรมสมบูรณไ ด ประเภทของฟงกชนั ฟงกช ันใน PHP แบง ออกเปน 2 ประเภทคือ 1. ฟงกชันที่ผูใชงานสรางข้ึนเอง (User Defined Function) เปนฟงกชันท่ีผูพัฒนาสราง ข้นึ มาเอง โดยการระบรุ ปู แบบการทาํ งานไดตามความตองการ 2. ฟงกชันมาตรฐานของภาษา PHP (Built - in Functions) เปนฟงกชันมาตรฐานท่ีมีอยู แลวในภาษา PHP ใชในงานท่ัวไป สามารถเรียกใชงานไดเลยโดยไมตองสรางฟงกชันข้ึนมาใหม เชน ฟง กชัน print สําหรบั แสดงผลฟงกช นั ทใี่ ชใ นการจัดการไฟล เปน ตน สําหรับฟงกชันที่เราจะศึกษากันในหัวขอตอไป คือ การใชงานฟงกชันท่ีผูใชงานสรางข้ึนเอง (User Defined Function) ซึ่งเราจะศึกษาถึงวิธีการสรางฟงกชันไวใชงาน, วิธีการเรียกฟงกชัน, รูปแบบการคืนคาฟงกชัน, การสงผานคาของตัวแปรใหกับฟงกชันท้ังแบบภายในและภายนอก และ การใชงานฟง กช ันเรยี กใชต วั เอง 52

สวนประกอบของฟง กชนั สวนประกอบของฟง กช นั ภายในโปรแกรมจะแบง เปน 2 สว น ดงั นี้ function ชอ่ื ฟง กช นั (พารามิเตอร) { คาํ ส่งั ในฟงกชัน ; การคนื คาของฟง กชนั ; } ชอ่ื ฟงกชัน(อารกิวเมนต) ; มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง สวนการประกาศฟง กช ัน สวนการเรยี กใชฟ งกชนั สว นการประกาศฟงกชัน ประกอบดวย - ชือ่ ฟงกชนั ใชสาํ หรับเวลาทต่ี อ งการเรยี กใชฟ งกชนั - พารามิเตอร หรือตัวแปรสง เปนตัวแปรท่ีฟงกชันสรางไวเพ่ือรับคาที่จะสงเขามาใหกับ ฟงกช นั - คาํ สั่งในฟง กชนั เปนคาํ สัง่ ท่ีสง่ั ใหฟง กชนั ทํางาน - การคืนคาของฟง กชนั (มีหรือไมม ีกไ็ ด) สว นการเรียกใชฟง กชัน ประกอบดวย - ชอ่ื ฟงกช ัน เปน ช่ือทีใ่ ชเ รยี กฟงกชนั มาใชงาน - อากิวเมนต หรือตวั แปรรับ คอื ตวั แปรทต่ี องการสงคามาใหก ับฟงกช นั การสรา งฟง กช นั ไวใชง านและวธิ กี ารเรียกใชง านฟง กช นั ในการสรางฟงกชันนั้นสิ่งแรกที่ตองทําความรูจักคือ การต้ังชื่อฟงกชัน, ตัวแปรรับ และตัว แปรสง ในการตง้ั ช่อื ฟงกชันจะคลา ยๆ กับการต้งั ชื่อตัวแปร ดงั น้ี - ชอื่ ของฟง กช ันควรจะสมั พนั ธก ับการทํางานของฟงกชนั - ชือ่ ฟง กช นั ตอ งไมซ า้ํ กัน - ชอ่ื ฟง กชันสามารถเปนตัวอกั ษร ตวั เลข เสน ขดี ลา ง (_) ได แตหา มข้นึ ตนดวยตัวเลข 53

ตัวแปรสงและตัวแปรรบั กอ นท่ีเราจะสรางฟง กชันจะตองทาํ ความรูจ กั กับตัวแปร 2 ประเภท คอื พารามิเตอร (Parameter) หรือตัวแปรสง คือ ตัวแปรท่ีฟงกชันสรางไวรับคาที่สงเขามา ใหก บั ฟงกชนั และนาํ คาเหลา น้นั ไปประมวลผลในฟง กชัน รูปแบบการสรางฟง กชนั และการใชง านตัวแปรสง function ช่อื ฟง กช นั ($พารามิเตอร1 , $พารามเิ ตอร2 ,...,$พารามเิ ตอรn) { คําส่ังในฟง กชนั ; การคืนคาของฟง กช ัน ; //อาจมีหรือไมก็ได } มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง อารกิวเมนต (Argument) หรือตัวแปรรับ คือตวั แปรที่ตองการสงคามาใหกับฟงกชันซ่ึงจะ ใชใ นการเรียกใชง านฟง กชนั รูปแบบการใชงานตวั แปรรบั ช่อื ฟง กช นั ($อารก ิวเมนต1 ,$อารกิวเมนต2 ,...$อารก วิ เมนตn ); ตวั อยา งท่ี 4.1 การสรางฟง กช นั คํานวณคา คอมมชิ ชนั 1.3 1 ไฟล input.php สาํ หรบั รบั ขอ มูลจากผใู ช <!--input.php--> <html> <head> <title>คาํ นวณคาคอมมิชชัน</title> </head> <body> <form action=\"commission.php\" method=\"post\"> 1.1 กรณุ ากรอกยอดขาย : <input type=\"text\" name=\"sale\"> 1.2 <input type=\"submit\" value=\"คํานวณคาคอมมิชชัน\" name=\"submit\"> </form> </body> </html> 54

ไฟล commission.php สําหรบั การคํานวณคา คอมมิชชนั <!--commission.php--> <?php $s=$_POST['sale']; 2 $total=commission_c($s); 3 มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง print \"คาคอมมชิ ชนั คือ \" .$total. \" บาท\"; 4 function commission_c($sale_f) { if($sale_f<10000) return 0*$sale_f; else if($sale_f>=10000&&$sale_f<50000) 5 return 0.05*$sale_f; else return 0.10*$sale_f; } ?> คาํ อธิบายโคด 1. สรางฟอรม รบั ขอ มูลจากผใู ช 1.1 กําหนดใหฟอรมน้สี งขอ มลู ไปยงั ไฟล commission.php 1.2 สรางกลองรบั ยอดขายโดยตงั้ ช่อื วา sale 1.3 สรา งปุมสงขอ มลู ไปประมวลผล 2. สรา งตัวแปรมารบั คาท่สี ง มาจากฟอรม เพื่อนาํ ไปเรียกใช ซึ่งตวั แปรชื่อ $s 3. สรางสวนเรียกใชงานฟงกชัน ซ่ึงฟงกชันท่ีเรียกใชช่ือวา commission_c มีตัวแปรท่ีสงไปคือ $s เปน ยอดขายทีผ่ ูใชก รอก แลว เกบ็ คาคอมมชิ ชนั ท่ีไดจ ากฟง กชนั commission_c ลงในตวั แปร $total 4. แสดงผลคา คอมมชิ ชัน ท่ไี ดจ ากฟง กชนั commission_c ซง่ึ ตอนนีอ้ ยใู นตวั แปร $total 5. สรางสว นประกาศฟงกชนั โดยฟง กช ัน commission_c นมี้ ีเกณฑใ นการจายคา คอมมิชชัน ดังนี้ • ยอดขายตาํ่ กวา 10,000 บาท ไมจายคา คอมมิชชัน • ยอดขายมากกวา 10,000 แตไ มถงึ 50,000 บาท จา ย 5% • ยอดขายตัง้ แต 50,000 บาทข้นึ ไป จา ย 10% 55

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงผลการทํางาน ดังน้ี ภาพประกอบท่ี 4.1 ผลการทํางานของการใชง านตวั แปรรับ ท่มี า: (ภาพโดยผูเขียน, 2564) จากโคดจะเห็นวาเราไมตองเขียนการคํานวณซ้ําๆกัน ซึ่งอนาคตหากมีสินคาท่ีจะคํานวณ มากกวานี้เพียงนําขอมูลเขามาเพิ่มในสวนเรียกใชฟงกชัน แตเราไมตองเขียนสวนประกาศฟงกชันซํ้า อีก และหากตอ งการเปลีย่ นเกณฑข องคอมมิชชัน กเ็ ปลย่ี นเฉพาะสว นประกาศฟง กช นั เทา นัน้ การสงผา นคา ของตัวแปรใหแ กฟงกชัน วิธีการสง ผา นคาของตัวแปรรับ (Argument) ใหแกฟง กช ัน แบงออกเปน 2 รูปแบบ คอื 1. สงผา นดว ยคาของตัวแปร (Pass by value) การสงผานดวยคาของตัวแปร (Pass by value) เปนการสงผานคาอารกิวเมนตจะเปนการ คดั ลอกคาแลว สงตอคาที่คัดลอกนั้นไปยังตัวแปรภายในฟงกชันแลวทํางาน จึงถือวาเปนคาตัวแปรคน ละตวั กบั คาของตัวแปรภายนอกฟงกชัน แมวาภายในฟงกชันจะมีการเปล่ียนแปลงคาก็จะไมมีผลใดๆ ตอคาทีอ่ ยใู นตัวแปรภายนอกฟง กช ัน ตวั อยา งที่ 4.2 การสงผา นแบบ Pass by value <?php $a=10; print \"คา ตวั แปร \\$a กอ นเรยี กใชฟง กช นั = \". $a . \"<br>\"; // สว นเรียกใชฟงกชนั AddX($a); print \"คาตวั แปร \\$a หลงั เรียกใชฟงกช ัน = \". $a . \"<br>\"; // สวนประกาศฟงกช ัน function AddX($a) { $a+=10; print \"ในฟงกช ันมีการเพิ่มคาของตัวแปร ดงั นน้ั \\$a = \". $a . \"<br>\"; return; } ?> 56

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงคําอธิบายโคด ตัวอยางน้ีมีการสรางฟงกชันช่ือ AddX เพ่ือเพ่ิมคาตัวแปร $a ข้ึนอีก 10 โดยใชการสงผาน แบบ Pass by value ซงึ่ มขี ้ันตอนการทํางาน มีดังนี้ 1. สรางตัวแปร $a มคี าเทากับ 10 2. แสดงผลตวั แปร $a กอนเรยี กใชฟ งกช นั 3. เรยี กใชง านฟง กช ัน AddX โดยสงตวั แปร $a ไปยังฟงกช นั 4. ฟง กชนั เพมิ่ คาตวั แปร $a ขน้ึ อกี 10 5. แสดงผลการเพมิ่ คา ตัวแปร $a ภายในฟฟง กช นั 6. แสดงผลตัวแปร $a หลังเรียกใชฟงกชัน (โคดบรรทัดท่ี 6) พบวาคาของตัวแปร $a ยังคง เหมอื นเดมิ ผลการทํางาน ดังนี้ ภาพประกอบท่ี 4.2 ผลการทํางานของการสง ผานแบบ Pass by value ท่มี า: (ภาพโดยผเู ขยี น, 2564) 2. สงผานดวยคา การอางอิง (Pass by reference) การสงผานดวยคาการอางอิง (Pass by reference) เปนการสงผานคาอารกิวเมนตจะ คัดลอกคาสงตอไปยังตัวแปรภายในฟงกชันแลวทํางาน โดยคาของตัวแปรอารกิวเมนตเดิมจะ เปลี่ยนแปลงไปดวย สําหรับการสงคาดวยวิธีน้ี จะตองใสเคร่ืองหมาย & ไวหนาตัวแปรท่ีสงใหแก ฟง กช ัน 57

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตวั อยา งท่ี 4.3 การสงผา นแบบ Pass by reference <?php $a=10; print \"คาตัวแปร \\$a กอนเรยี กใชฟ งกช นั = \". $a . \"<br>\"; // สวนเรียกใชฟ ง กช ัน AddX($a); print \"คา ตวั แปร \\$a หลังเรียกใชฟง กชัน = \". $a . \"<br>\"; // สวนประกาศฟงกชนั function AddX(&$a) { $a+=10; print \"ในฟง กช ันมีการเพ่ิมคา ของตวั แปร ดังนัน้ \\$a = \". $a . \"<br>\"; return; } ?> คาํ อธบิ ายโคด ตวั อยางน้ีจะเหมอื นกับตวั อยางทผ่ี า นมายกเวน จะสงคา แบบ Pass by reference ผลการทาํ งาน ดงั น้ี ภาพประกอบที่ 4.3 ผลการทํางานของการสงผานแบบ Pass by reference ทีม่ า: (ภาพโดยผูเขยี น, 2564) การคนื คาจากฟง กชนั เมื่อส้ินสุดการเรียกใชงานฟงกชัน ฟงกชันอาจมีการกําหนดการคืนคาจากฟงกชันไปสูผู เรยี กใชง าน ซ่งึ อาจมีทัง้ การคืนคา ตามรูปแบบทีป่ ระกาศไว หรือไมม ีการคืนคา ดงั นี้ 58

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง1. ฟง กชันท่ไี มม กี ารคืนคา ฟงกชันท่ีไมมีการคืนคาจะใชคําสั่ง return ในจุดท่ีตองการหยุดการทํางาน เพ่ือจบการ ทํางานภายในฟงกช ัน แลว ออกไปยังจุดทเี่ รยี กใชงานฟงกชันเพ่ือทํางานในข้ันตอนตอไป (ดูการใชงาน จากตวั อยา งท่ี 4.3) 2. ฟง กช ันทีม่ กี ารคนื คา ฟง กช ันที่มีการคนื คาจะใชคําส่ัง return ตามดว ยคา ท่ตี องการสงกลบั โดยคาที่สงกลับออกไป อาจเปนตวั แปร, คาคงท่ี หรือฟงกชันกไ็ ด (ดูการใชงานจากตัวอยางที่ 4.1) ขอบเขตการเรยี กใชต วั แปร การเขียนโคด PHP แมตัวแปรภายในฟงกชัน และภายนอกฟงกชันจะมีช่ือเหมือนกัน แต PHP จะมองวาเปนคนละตัวกนั เพราะมีขอบเขตในการใชงานไมเหมือนกนั ดังนี้ - ตัวแปรทเ่ี รียกใชงานไดเ ฉพาะภายในฟงกช นั (Local) คือตวั แปรท่ปี ระกาศภายใน ฟง กช นั จะมีขอบเขตการทาํ งานตง้ั แตประกาศฟงกชันไปจนส้ินสุดการทํางานของฟงกชันเทาน้ันจะไม นําคาออกไปใชงานภายนอกฟง กชนั - ตัวแปรที่เรยี กใชไ ดท ง้ั ภายในและภายนอกฟง กชัน (Global) คือตวั แปรท่ปี ระกาศ ภายนอกฟงกชันมีขอบเขตต้ังแตเริ่มประกาศตัวแปรจนส้ินสุดการใชงานของโปรแกรม แตจะไมมีผล ภายในฟงกชันถาหากตัวแปรมีชื่อตรงกนั ฟงกช นั เรียกใชตัวเอง (Recursive Function) คือฟงกชันที่เรียกใชตัวเอง เปนลักษณะเปนฟงกชันท่ีภายในการทํางานของฟงกชันมีการ เรียกใชฟ งกชนั ตัวเองข้ึนมาทํางานวนซํา้ มักใชป ระโยคเงือ่ นไขมาชว ยควบคมุ การทาํ งาน 59

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตัวอยา งท่ี 4.4 การใชงานฟงกชันเรียกใชต วั เอง <?php $a=rand(1,9); print \"คาตัวแปร \\$a กอนเรยี กใชฟ งกช ัน = \". $a . \"<br>\"; // สวนเรยี กใชฟ งกชัน Recurs($a,1); // สว นประกาศฟง กช นั function Recurs($a,$n) { $a*=2; print \"เรยี กใชง านฟง กช ัน Recurs ครงั้ ท่ี $n ตัวแปร \\$a = \". $a . \"<br>\"; $n+=1; if($a<=999) { Recurs($a,$n); } return; } ?> คาํ อธิบายโคด ตัวอยางนี้จะสุมตัวเลขขึ้นมา 1 ตัว (ระหวาง 1 ถึง 9) แลวเพ่ิมคาตัวเลขนั้นทีละ 2 เทาโดย เพิม่ ไปจนกวาจะมากกวา 999 จงึ หยดุ ซ่งึ ใชฟ งกช นั ชนิด Recursive มาชว ย ผลการทาํ งาน ดังนี้ ภาพประกอบที่ 4.4 ผลการทํางานของการใชงานฟง กช นั เรยี กใชต วั เอง ที่มา: (ภาพโดยผเู ขยี น, 2564) 60

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงฟง กชนั include คือ ฟงกชันที่นําสคริปตจากไฟลอ่ืนมาใชงาน และสามารถเรียกใชไดบอยตามตองการ มี รูปแบบ ดังน้ี include (‘ชอ่ื ไฟล.นามสกุลไฟล’ ); ตวั อยา งท่ี 4.5 การใชง านฟง กชัน include <!--master-include.php--> <?php $a=10; print \"คาตัวแปร \\$a = $a <br>\"; print \"เรียกตวั แปร \\$b มาจากไฟลอน่ื โดยใชฟ งกช ัน include <br>\"; include(\"include-test.php\"); $a+=$b; print\"คาตัวแปร \\$a = $a <br>\"; ?> <!—include-test.php--> <?php $b=30; print \"คาตวั แปร \\$b = $b <br>\"; ?> คาํ อธิบายโคด ตัวอยางน้ีมีการแทรกสคริปตจากไฟล include-test.php เขามาในไฟล master- include.php โดยจะนาํ คาของตัวแปรท่อี ยูในสคริปตท ัง้ สองมาคาํ นวณและแสดงผล 61

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงผลการทํางาน ดงั นี้ ภาพประกอบที่ 4.5 การใชง านฟง กชนั include ทม่ี า: (ภาพโดยผูเขียน, 2564) ฟงกช ัน function_exists กรณีท่ีเราเขียนโปรแกรมเปนจํานวนมาก หากตองการตรวจสอบฟงกชันที่เขียนลงใน โปรแกรมวามีอยูหรือไมสามารถตรวจสอบการมีอยูของฟงกชันโดยใชฟงกชัน function_exists ควร ใชรวมกับประโยคเง่ือนไข (if-else) โดยจะคืนคาเปน True เมื่อมีช่ือฟงกชันท่ีคนหา และคืนคาเปน False เม่ือไมพบชื่อฟงกชนั ท่คี น หา ตวั อยางท่ี 4.6 การใชงานฟง กช ัน function_exists <!—Function-exits.php--> <?php function AddVar($a) { $a+=10; } $nameFunc=\"AddVar\"; if(function_exists(\"$nameFunc\")) { print \"ฟงกช ัน $nameFunc มีอยจู ริงในโปรแกรมนี้ <br>\"; } else { print \"โปรแกรมนไ้ี มมีฟงกชนั $nameFunc \"; } ?> 62

คําอธิบายโคด ตวั อยางนเ้ี ราจะตรวจสอบหาฟงกชัน AddVar วามีอยูในโปรแกรมนี้หรือไม ถามีฟงกชันนี้ให แสดงขอความวา ฟงกชัน AddVar มีอยูจริงในโปรแกรมน้ี แตถาไมมีฟงกชันน้ีอยูใหแสดงขอความวา โปรแกรมนีไ้ มมฟี งกช ัน AddVar ผลการทํางาน ดงั น้ี มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ภาพประกอบท่ี 4.6 ผลการทํางานของการใชงานฟง กชัน function_exists ทม่ี า: (ภาพโดยผูเ ขยี น, 2564) (อนรรฆนงค คุณมณ,ี 2555) ฟง กชนั มาตรฐานของภาษา PHP ฟงกชันที่มีอยใู นโปรแกรมภาษา PHP มีมากมาย แตจะขอกลาวถึงฟงกชนั ท่ีพบเห็นและมี การเรียกใชง านประจาํ ซึง่ บางฟง กช นั จะมรี ูปแบบการใชง านไดหลายรูปแบบ ฟง กช นั เกย่ี วกบั คณิตศาสตร แมว า PHP จะมฟี งกชันเกี่ยวกับคณติ ศาสตรอยเู ปนจาํ นวนมาก แตม ีฟงกชันทใ่ี ชงานบอยๆ เพยี งไมกี่ฟงกช นั ดงั น้ี ตารางที่ 4.1 ฟงกชันเกย่ี วกบั คณิตศาสตร ฟง กชัน ตัวอยาง หนาท่ี ceil(float value) ceil (4.01); //ไดผ ลลัพธ 5.0 ปดเศษเลขทศนยิ มใหเปนเลข ceil (3.98); //ไดผลลัพธ 4.0 จํานวนเตม็ โดยการปด เศษข้ึน ceil (-3.98); //ไดผลลัพธ -3.0 หากมเี ลขหลงั จุดทศนยิ ม ceil (-4.01); //ไดผ ลลพั ธ -4.0 floor(float value) floor (4.99); //ไดผลลัพธ 4.0 ปดเศษเลขทศนยิ มใหเปนเลข floor (5.1); //ไดผ ลลัพธ 5.0 จาํ นวนเต็มโดยการปดเศษลง floor (-5.1); //ไดผลลพั ธ -6.0 หากมีเลขหลังจดุ ทศนยิ ม floor (-4.99); //ไดผลลพั ธ -5.0 round(float value round (3.4); //ไดผ ลลัพธ 3 ปดเศษเลขทศนิยมโดยปด ขน้ึ [, int precision] ) round (3.5); //ไดผ ลลัพธ 4 หรอื ลงดจู ากเศษทศนิยมหาก 63

ฟงกช นั ตัวอยาง หนาท่ี intval(var) round (1.95583, 2); //ไดผลลพั ธ 1.96 นอยกวา 0.5 ใหป ด ลง หาก floatval(var) round (5.044, 2); //ไดผ ลลัพธ 5.04 มากกวา 0.5 ใหป ด ข้ึน และ min(n1,n2, … n) หรอื สามารถระบุ precision min(อารเ รย) (จํานวนหลักหลังจุดทศนยิ ม) มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง intval (16.345); //ไดผลลัพธ 16 เลอื กเอาเฉพาะจํานวนเตม็ ของ intval (\"16s\"); //ไดผลลพั ธ 16 จาํ นวน (var) ทรี่ ะบุ intval (\"t16\"); //ไดผ ลลพั ธ 16 intval (\"a\"); //ไดผ ลลพั ธ 0 intval (225.345 MB); //ไดผ ลลัพธ เลือกเอาเฉพาะจํานวนทศนยิ ม 225 ของจาํ นวน (var) ที่ระบุ กรณี จํานวนน้นั วางอยูหนา string min (6,7,3,8,9); // ไดผ ลลพั ธ 3 คานอ ยสุดระหวางจํานวนที่ min (array(10,10.5,3.4,4.5,20)); // กําหนด ไดผลลพั ธ 3.4 max(n1,n2, … n) max (6,7,3,8,9); // ไดผ ลลพั ธ 9 คา มากสุดระหวา งจาํ นวนที่ หรือ max (array(10,10.5,3.4,4.5,20)); // กาํ หนด max(อารเ รย) ไดผ ลลัพธ 20 number_format number_format (1523000); // ได ใชในการจัดรปู แบบตวั เลข (จํานวน) is_numberic ผลลพั ธ 1,523,000 (ขอมูล) is_numberic (123) // ไดผลลพั ธ true ตรวจสอบวาขอ มูลท่รี ะบุนนั้ is_int(ขอมูล) is_float(ขอมลู ) is_numberic (“12s”) // ไดผลลัพธ เปน ตัวเลขหรอื ไม โดยจะคืนคา false true ถาเปนตวั เลขที่ไมมี is_numberic (5e2) // ไดผลลัพธ true อักขระอืน่ ๆ ผสมอยู แตถา มี เนือ่ งจาก e ใชกําหนดเลขช้ีกําลังฐานสิบ อักขระอน่ื ๆ ผสมอยูจะคืนคา false is_int (123) // ไดผ ลลพั ธ true ตรวจสอบวา เปนจาํ นวนเตม็ is_int (123.25) // ไดผ ลลพั ธ false หรอื ไม หากใชจะคนื คา true is_float (123) // ไดผลลัพธ false ตรวจสอบวา เปนจาํ นวนท่มี ี 64

ฟง กช นั ตัวอยาง หนาที่ is_ float (123.25) // ไดผ ลลพั ธ true ทศนยิ มหรือไม หากใชจะคนื คา true abs(จาํ นวน) abs (-10) // ไดผลลัพธ 10 ใชสําหรับหาคา บวก (absolute) มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง rand() rand (); // ไดผ ลลัพธ เลขสมุ คา ระหวาง ใชใ นการสรางเลขสมุ โดยคา ท่ี หรอื 0 – 32,768 ไดจ ะไมแนน อนในแตล ะคร้ัง rand(คา นอยสุด, คา rand (1,9); // ไดผลลพั ธ เลขสุมคา มากสดุ ) ระหวา ง 1 – 9 pow(เลขฐาน, เลขชี้ pow (10, 2); // ไดผ ลลัพธ 100 ใชใ นการหาคา เลขยกกําลงั กําลัง) sqrt(ตวั เลข) sqrt (100); // ไดผ ลลัพธ 10 หาคา รากที่สองของจํานวนท่ี ระบุ แตตองไมใ ชจ ํานวนทีต่ ดิ ลบ pi() $circle_area = pi() * pow($radius, ใชสําหรบั อานคา pi 2) ; ฟง กชันเก่ียวกับเวลาและวนั ที่ ขอมูลเกี่ยวกบั เวลาและวันที่ถือวา เปน ขอมลู ทสี่ าํ คัญในการเขยี นโปรแกรมแบบสครปิ ต ซ่ึง การใชง านสว นใหญจะกระทาํ ผานฟง กช นั โดยฟง กช นั ทีน่ าสนใจเกยี่ วกบั เวลาและวันทมี่ ีดังนี้ ตารางท่ี 4.2 ฟงกช ันเกย่ี วกบั เวลาและวันที่ ฟงกช นั ตัวอยา ง หนา ท่ี date(รปู แบบ [, date (\"วันท่ี j เดือนท่ี n ป ค.ศ. Y\"); จัดรปู แบบวันเวลาใหตรงกบั timestamp]) // ไดผลลพั ธ วนั ท่ี 22 เดือนท่ี 11 ป รูปแบบของแตละทอ งถน่ิ ค.ศ. 2022 - รูปแบบ คอื รหสั ท่ีกําหนด รูปแบบ date ท่ีตอ งการ - timestamp คือ ขอมลู วันเวลา ท่ไี ดจ ากคาํ สงั่ mktime หรือ gmmktime ถาไมกําหนด timestamp จะเปนการเอาวัน เวลาจากปฏทิ นิ และนาฬิกาใน 65

ฟง กชัน ตวั อยา ง หนา ท่ี checkdate(เดอื น, เครอ่ื งเซิรฟเวอร วันท,ี่ ป ค.ศ.) checkdate (2, 29, 2020); //ได ตรวจสอบวามีวันเวลาท่รี ะบุอยู strtotime() ผลลัพธ True เนอื่ งจากป 2020 มีวันท่ี จริงหรอื ไม 29 กุมภาพนั ธ มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง $a= strtotime (\"12/30/2022\"); แปลงจากสตรงิ ใหเ ปนขอมลู วนั echo date (\"วนั ท่ี j เดือนที่ n ป ค.ศ. เวลาในรปู แบบ timestamp แต Y\",$a); // ไดผลลัพธ วนั ท่ี 30 เดอื นท่ี สตรงิ น้ันตองเขียนในรปู แบบท่ี 12 ป ค.ศ. 2022 สามารถแปลงได เชน month/day/year หรือ year/month/day เปน ตน ทงั้ น้ี หากแปลงไมไ ดจะคนื คา false หรอื -1 สวนใหญจะนําผลลพั ธท่ี ไดจ ากฟงกชนั strtotime มา ปรับใชก ับฟงกช นั date อักขระตา งๆ ท่ีใชก ําหนดรปู แบบวนั เวลาสาํ หรับฟง กช นั date() สามารถแยกออกเปน กลมุ ไดดงั นี้ ตารางที่ 4.3 อักขระที่ใชแทน “วัน” และ “สัปดาห” อักขระ ความหมาย d ใชแทนวนั ทข่ี องเดือนโดยเปน เลข 2 หลัก เชน 01, 02, 31 j ใชแ ทนวันที่ของเดือนแบบไมม ี 0 นําหนาเลขหลกั เดยี ว เชน 1, 2, 31 D ใชแทนวนั ในรอบสปั ดาหแบบยอ เชน Sun, Mon l (ตัวแอลพิมพเล็ก) ใชแทนวันในรอบสัปดาหแบบชื่อเต็ม เชน Sunday, Monday S (ตัวเอสพิมพใหญ) เปนตัวอักษรยอท่ีใชบงบอกลําดับท่ีของวันในรอบเดือน เชน st, nd, rd, th โดยปกติจะใชตอทายตัว j หรือ d (ซ่ึงใชแทนวันท่ี) เชน jS ลกั ษณะผลลพั ธ คอื 1st w ใชแ ทนลาํ ดบั ของวนั ในรอบสปั ดาหจาก 0-6 z แทนลําดบั ของวนั ในรอบปจาก 0-365 W ลําดับท่ขี องสปั ดาหใ นรอบป ตารางท่ี 4.4 อกั ขระที่ใชแทน “เดอื น” 66

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง อักขระ ความหมาย F ชื่อเดอื นแบบเต็ม เชน January, March m ลาํ ดับทีข่ องเดอื นในรอบปโดยมี 0 นาํ หนา เลขหลกั เดียว เชน 01, 02, 12 M ช่ือของเดอื นแบบยอเฉพาะ 3 ตัวแรก เชน Jan, Feb n ลาํ ดบั ทข่ี องเดอื นแบบไมมี 0 นาํ หนา เลขหลกั เดียว เชน 1, 2, 12 t จาํ นวนวนั ของเดือนนั้นๆ โดยมคี า ระหวา ง 28-31 ตารางที่ 4.5 อักขระทใ่ี ชแทน “ป” อกั ขระ ความหมาย L ตรวจสอบวาเปน ป Leap Year หรือไม (เดือนกุมภาพันธมี 29 วัน) ถาใชจะคืน คา 1 ถาไมใชจ ะคืนคา 0 Y ใชแทนป ค.ศ. แบบเลข 4 หลกั เชน 1975 y ใชแ ทนป ค.ศ. แบบเลข 2 หลัก เชน 75 ตารางท่ี 4.6 อักขระทีใ่ ชแ ทน “เวลา” อักขระ ความหมาย a ใชแทนคา Ante Meridiem และ Post Meridiem แบบพิมพเล็กไดแก am หรือ pm A ใชแทนคา Ante Meridiem และ Post Meridiem แบบพิมพเล็กไดแก AM หรอื PM g ใชแทนคาช่ัวโมงของวันแบบ 12 ชั่วโมงโดยไมมี 0 นําหนาเลขหลักเดียว ระหวา ง 0-12 G ใชแทนคาช่ัวโมงของวันแบบ 24 ชั่วโมงโดยไมมี 0 นําหนาเลขหลักเดียว ระหวา ง 0-23 h ใชแทนคาช่ัวโมงของวันแบบ 12 ช่ัวโมงโดยไมมี 0 นําหนาเลขหลักเดียว ระหวาง 01-12 H ใชแทนคาช่ัวโมงของวันแบบ 24 ชั่วโมงโดยไมมี 0 นําหนาเลขหลักเดียว ระหวา ง 00-23 i คา นาทีแบบมี 0 นาํ หนาเลขหลักเดยี วจาก 00-59 s คา วนิ าทีแบบมี 0 นําหนาเลขหลักเดียวจาก 00-59 การเพม่ิ และลบชว งเวลา 67

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ปกติแลวใน PHP ไมมีฟงกชันท่ีใชในการลบวันเวลาโดยตรง ยกเวนจะแปลงใหอยูในรูปแบบ timestamp เสียกอน แตดวยความสามารถของฟงกชัน strtotime() ท่ีสามารถแปลงจากสตริง ธรรมดาใหเปน วันเวลาแบบ timestamp ได ทาํ ใหก ารหาความแตกตา งของชว งวนั เวลานั้นงายข้นึ strtotime(\"now\"); // ไดผ ลลัพธ วนั เวลาปจจบุ นั strtotime(\"+30 days\"); // ไดผ ลลพั ธ อกี 30 วนั นบั จากปจ จบุ นั strtotime(\"-45 days\"); // ไดผลลัพธ อกี 45 วนั ท่แี ลว strtotime(\"+9 months\"); // ไดผ ลลพั ธ อีก 9 เดือน strtotime(\"-2 years\"); // ไดผลลัพธ เมอื่ 2 ปที่แลว นอกจากน้ียังมีหนวยงานอื่นๆ ที่เราสามารถกําหนดไดอีก เชน hours, minutes, seconds, weeks เปนตน แตเนื่องจากคาที่ไดจากฟงกชัน strtotime() จะอยูในแบบ timestamp ดังนั้นเรา ควรแปลงใหอยูในรูปแบบท่เี ราสามารถเขา ใจได โดยใชฟ ง กช นั date() หรอื getdate() เชน $ts=strtotime(\"+100 days\"); echo date (\"อีก 100 วนั จะตรงกบั d/m/y\", $ts); การเปรียบเทียบและหาความแตกตางของวนั เวลา เน่ืองจากขอมูลวันเวลาใน PHP นั้นเราเขียนในแบบสตริง จึงไมสามารถนํามาเปรียบเทียบ หรือหาความแตกตางกันไดโดยตรงได แตถาจะทําตองเปล่ียนวันเวลาใหอยูในรูปแบบ timestamp เสยี กอ น โดยมีหลกั การดังตอ ไปนี้คือ - วนั เวลาทั้งหมดท่ีจะเปรียบเทียบหรอื หาความแตกตา ง ใหเ ปลี่ยนเปน timestamp โดยใชฟง กช นั strtotime() ดังที่กลา วมาแลว - หลกั การเปรียบเทียบคือ วันเวลาทม่ี ากอน ยอมมคี า timestamp นอ ยกวา วัน เวลาที่มาทหี ลัง เชน 31/12/2014 จะมีคา timestamp นอยกวา 1/1/2015 เปน ตน เชน $now=strtotime(\"now\"); $expire=strtotime(\"2010/10/20\"); if($now >= $expire) { echo \"สนิ คา นหี้ มดอายแุ ลว\"; } - การหาความแตกตา งของวนั เวลา หลงั เปลยี่ นเปน timestamp แลว สามารถนํามา 68

ลบกนั ไดเ ลย แตค าทไ่ี ดจ ะเปน หนว ยวนิ าที หากเราจะแปลงใหเปนหนวยที่ใหญขึ้นตองแปลงหนวยน้ัน เปนหนวยวินาที แลว นาํ มาหาร เชน $now=strtotime(\"now\"); $birth=strtotime(\"2010/10/20\"); $diff= $now-$birth; $y_sec= 60*60*24*365; //แปลงจํานวนวินาทใี น 1 ป $age= intval($diff/$y_sec); มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ฟงกชนั เกยี่ วกบั สตรงิ สตริง คือขอมูลท่ีเปนสายอักขระ หรือเปนการนําอักขระแตละตัวมาวางเรียงตอกันนั่นเอง เชน คาํ วา “String” เกิดจากอักขระ S+t+r+i+n+g เปนตน ท้ังน้ีอักขระท่ีวางเรียงตอกันเปนสตริง ก็ จะมีลําดับเปนของมันเองเหมือนกับอารเรย จึงกลาวไดวาสตริงก็คืออารเรยของอักขระนั่นเอง ดังนั้น การอางถงึ อักขระยอยๆ แตละตัวภายในสตริง เราจึงใชเลขลําดับเปนตัวกําหนดเหมือนกับการอางอิง ถึงสมาชิกของอารเรย เชน $str = \"Thailand\"; echo $str[0] . $str[1] . $str[2] . $str[3] ; // Thai ฟงกชันสตริงมีเปนจํานวนมาก แตในบทนี้จะกลาวถึงเฉพาะฟงกชันท่ีใชงานบอยๆและ นาสนใจ ซ่ึงแบงออกเปน กลมุ ดังตอไปน้ี ตารางที่ 4.7 ฟงกชนั เก่ียวกับการหาขนาดของสตรงิ ฟงกชนั ตวั อยา ง หนาที่ หาความยาวของสตริง หรอื นับ strlen(สตริง) $str1 = \"Thailand\"; จํานวนสตริงน่ันเอง โดยชอ งวา ง 1 ชอ งกจ็ ะนบั เปน 1 อักขระ echo strlen($str1); // ไดผลลพั ธ 8 ดว ย กรณสี ระและวรรณยุกต ไทยกจ็ ะนับเปน 1 อกั ขระดวย $str2 = \"สวสั ดี คะ\"; เชนกัน echo strlen($str2); // ไดผลลพั ธ 10 69

ฟงกช ัน ตวั อยาง หนาท่ี str_word_count (สตริง) $str = \"One นบั จาํ นวนคํา โดยใชอกั ขระท่ี Two,Three&Four_Five:Six7Seven- ไมใชตวั อักษร a-z เปนตัวคดั Eight+Nine'Ten\"; แยก ยกเวน ' และ - echo str_word_count($str); // ได มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ผลลพั ธ 8 เพราะไมน บั คําท่แี บง ดวย ' และ - ตารางท่ี 4.8 ฟง กชนั ในการเปลี่ยนรปู แบบของตวั พมิ พ ฟงกช นั ตวั อยา ง หนาที่ strtolower(สตริง) $str = \"ABC\"; เปลย่ี นสตริงท่ีระบใุ หเปน ตวั พิมพ echo strtolower($str); // ไดผ ลลัพธ เล็กทุกตวั abc strtoupper(สตรงิ ) $str = \"thai\"; เปลีย่ นสตรงิ ทร่ี ะบุใหเปนตัวพิมพ echo strtoupper($str); // ไดผลลพั ธ ใหญท ุกตวั THAI ucfirst(สตริง) $str = \"thai\"; เปล่ยี นสตรงิ ท่ีระบใุ หเ ปนตัวพิมพ echo ucfirst($str); // ไดผลลัพธ Thai ใหญเ ฉพาะตวั อักษรแรก ucwords(สตริง) $str = \"information technology\"; เปลย่ี นสตริงท่รี ะบุใหตวั อักษรแรก echo ucwords($str); // ไดผ ลลัพธ ของทุกคําใหเปน ตัวพิมพใหญ Information Technology ตารางที่ 4.9 ฟง กช นั เกีย่ วกับการแยกและรวมสตรงิ ฟง กช นั ตัวอยาง หนาที่ คัดแยกสตรงิ ออกเปนสตริงยอยๆ explode $today = \"1/6/2014\"; ดว ยสญั ลกั ษณท ี่กําหนด โดย ผลลพั ธทไี่ ดจะอยใู นรปู แบบของ (สญั ลกั ษณทใี่ ชแ ยก, $a=explode(\"/\",$today); อารเรยข องสตริงยอยท่ีถูกแยก ออกมา สตรงิ ) echo $a[0] .\"<br>\"; // ไดผลลัพธ 1 ทํางานตรงกนั ขา มกับ explode() echo $a[1] .\"<br>\"; // ไดผ ลลพั ธ 6 echo $a[2] .\"<br>\"; // ไดผ ลลัพธ 2014 implode $arr = array('one', 'two', 'three'); 70

ฟง กช นั ตวั อยาง หนา ท่ี (สญั ลักษณทใี่ ชค่ัน, $a= implode(\", \",$arr); คือการนําสตรงิ ยอยมารวมเขา อารเ รยเ ปาหมาย) echo $a ; ดว ยกนั โดยค่นั แตล ะสตริงดว ย ไดผ ลลพั ธ คือ สัญลกั ษณท ่รี ะบุ one, two, three มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง ตารางที่ 4.10 ฟง กช ันเกย่ี วกบั สตรงิ ยอย ฟง กช ัน ตัวอยาง หนาที่ ใชส าํ หรับคน หาตัวอกั ษร คาํ หรอื strstr(สตรงิ ท่จี ะ $str = \"I Love you\"; ขอความ ตัวแรกจากขอความ ทั้งหมด หากพบคาดงั กลา ว ก็จะ คนหา, สตริงท่ี $strSearch= (\"Love\"); ทาํ การคืนคา ขอความนบั จากคา ทค่ี น หาเจอ ไป ตองการคนหา) $s = strstr($str, $strSearch); จนสนิ้ สดุ ขอความท้ังหมด echo $s; // ไดผลลพั ธ Love you คัดเอาสตรงิ ยอยโดยกําหนด ตาํ แหนง เริ่มตน และความยาวที่ substr(สตริงหลัก, $str = \"I Love you\"; ตองการ โดยเร่มิ นับจากตาํ แหนง ตําแหนงเร่ิมตน [, $s1 = substr($str, 7); // ไดผ ลลัพธ ท่ี 0 หลักการกําหนดคา มดี ังนี้ ความยาว]) you - หากเราไมกาํ หนดความยาว $s2 = substr($str, 7, 2); // ไดผ ลลพั ธ โปรแกรมจะคัดเอาสตรงิ ทง้ั หมด yo นบั ตัง้ แตตาํ แหนงเริ่มตน $s3 = substr($str, -4); // ไดผ ลลพั ธ - หากกําหนดตาํ แหนงเร่ิมตน เปน you บวก การคัดลอกสตรงิ จะเริ่มท่ี ตําแหนง นนั้ - หากกําหนดตําแหนงเริ่มตน เปน ลบ การคดั ลอกสตริงจะเริ่มตนที่ ตาํ แหนง ที่ระบุจากจดุ ส้นิ สุดของ สตริง (ทายสตริง) - หากกําหนดความยาวเกนิ กวา ความยาวของสตริง โปรแกรมจะ คัดลอกแคส ้นิ สุดสตริง 71

ฟงกชัน ตัวอยา ง หนา ท่ี นับจาํ นวนคําท่ีมีอยใู นสตรงิ ซึ่ง substr_count $s=\"aa bb cc aa dd a cccaabbb\"; รูปแบบการพมิ พตอ งตรงกันดวย (สตริงหลัก, สตรงิ $a= substr_count($s, \"aa\"); // ได เหมาะสาํ หรับการนําไปใชในการ ตัดคาํ ในภาษาไทย โดยการ ยอ ย) ผลลัพธ 3 กําหนดคาเหมอื นกบั substr ตวั ที่ เพิม่ มาคือ mb_substr(สตรงิ $str = \"ฉนั รกั เธอ\"; Encode สําหรับภาษาไทย แนะนาํ ใหกาํ หนดเปน \"utf-8\" มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงหลกั ,ตําแหนงเริม่ ตน $s1 = mb_substr($str, 7,2,\"utf-8\"); [, ความยาว] // ไดผ ลลัพธ ธอ [,encode]) $s2 = mb_substr($str, 3, 2,\"utf-8\"); // ไดผ ลลพั ธ รั $s3 = mb_substr($str, -4,2,\"utf-8\"); // ไดผ ลลัพธ กเ ตารางที่ 4.11 ฟง กช นั ในการคน หาสตริง ฟง กชนั ตวั อยา ง หนาท่ี strpos(สตริงหลกั , $s=\"aa bb cc aa dd a cccaabbb\"; คน หาตําแหนง ของสตรงิ ยอย ซ่ึง สตรงิ ยอ ย) $a1= strpos($s, \"aa\"); // ไดผลลัพธ คา ทคี่ ืนมาจะเปน ตําแหนงแรก 0 ของสตริงยอยท่ีคนพบ หากไม $a2= strpos($s, \"bb\"); // ไดผลลัพธ เจอจะสง คา null โดยการพิมพ 3 จะตอ งเหมอื นกัน $a3= strpos($s, \"dd\"); // ไดผ ลลัพธ 12 stripos(…) $s=\"Aa Bb Cc aa dd a cccaabbb\"; เชน เดยี วกับ strops() เพยี งแตจะ $a1= stripos($s, \"aa\"); // ไดผ ลลัพธ ไมส นใจความแตกตางของ 0 ตวั พมิ พเ ล็กตวั พิมพใ หญ $a2= stripos($s, \"bb\"); // ไดผลลพั ธ 3 $a3= stripos($s, \"dd\"); // ไดผ ลลัพธ 12 ตารางที่ 4.12 ฟงกชันในการแทนท่ีสตริง ฟง กช นั ตัวอยา ง หนาท่ี str_replace(สตริงท่ี $s=\"aa bb cc aa dd a cccaabbb\"; แทนท่สี ตรงิ ยอยเดิมดวยสตรงิ ยอย 72

ฟง กชนัมหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงตวั อยา ง หนาท่ี จะคนหา, สตริงทจ่ี ะ $a1= str_replace (\"aa\",\"AA\",$s); // ใหมท่ีตองการ หากสตรงิ ยอ ยท่ี ใชแ ทนท,ี่ สตรงิ ไดผลลพั ธ AA bb cc AA dd a ตอ งการคนหามีมากกวา 1 ก็จะ หลกั ) cccAAbbb ถกู แทนทท่ี ั้งหมด $a2= str_replace (\"bb\",\"BB\",$s); // str_ireplace(…) ไดผ ลลัพธ aa BB cc aa dd a เหมือนกบั ฟงกชนั str_replace() cccaaBBb เพยี งจะไมส นใจความแตกตางของ strtr(สตรงิ หลกั , ตวั พิมพ อารเ รยของสตรงิ ท่ี $s=\"Aa Bb Cc aa dd a cccaabbb\"; จะใชแทนท่ี) $a1= str_ireplace (\"aa\",\"AA\",$s); // เปนการแทนทสี่ ตรงิ อีกแบบหนงึ่ ไดผลลัพธ AA bb cc AA dd a แตสามารถกาํ หนด substring ใน cccAAbbb $a2= str_ireplace (\" การแทนท่ีไดม ากกวา 1 คํา โดย bb\",\"BB\",$s); // ไดผลลพั ธ aa BB cc อารเรยส ตริงที่จะใชแทนทจี่ ะตอง aa dd a cccaaBBb กําหนดในรปู แบบของ key/value โดย $s=\"คนเสพสบาย คนขายรวย\"; - key คอื สง่ิ ทเี่ ราตองการคน หา $a= array('สบาย'=>\"ตาย\", 'รวย'=> - value คือส่งิ ท่ีจะนาํ ไปแทนท่ี \"ตดิ คุก\"); ซึง่ การพมิ พตอ งตรงกัน $str= strtr($s, $a); echo $str; // ไดผลลัพธ คนเสพตาย คนขายตดิ คกุ ตารางที่ 4.13 ฟงกช ันในการตัดชองวางและเตมิ สตรงิ ฟง กชนั ตัวอยาง หนาที่ ตดั ชองวา งท่ีอยูด านซายของสตรงิ ltrim(สตรงิ ) $str=\" PHP \"; ออกท้ังหมด $s= ltrim ($str); // ไดผลลัพธ \"PHP ตดั ชองวา งท่ีอยดู า นขวาของสตริง ออกทั้งหมด \" rtrim(สตริง) $str=\" PHP \"; $s= ltrim ($str); // ไดผลลพั ธ \" PHP\" 73

ฟงกชนั ตัวอยา ง หนา ที่ trim(สตรงิ ) $str=\" PHP \"; ตดั ชองวางที่อยดู านซายและ $s= ltrim ($str); // ไดผลลัพธ \"PHP\" ดานขวาของสตริงออกท้ังหมด str_pad(สตริงหลกั $str=\"PHP\"; เติมสตรงิ ยอยลงไปเพอื่ ใหส ตริง , ความยาว, สตรงิ $s= str_pad ($str, 5, \"*\", หลกั มคี วามยาวตามตอ งการ โดยท่ี ยอ ย, รปู แบบ) STR_PAD_RIGHT); // ไดผลลพั ธ รูปแบบ มีดังนี้ STR_PAD_LEFT, STR_PAD_RIGHT, PHP** STR_PAD_BOTH ซงึ่ หมายถึงเติม สตริงยอยไปทางดานซาย, ขวา (บัญชา ปะสลี ะเตสัง, 2557) หรอื ทัง้ สองดาน ตามลําดบั มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง บทสรปุ ในการเขียนโปรแกรมบางโปรแกรมมีความจําเปนตองทํางานในลักษณะเดิมซ้ําๆ ทําใหตอง เสียเวลาในการพิมพซึ่งมีโอกาสที่จะทําใหเกิดขอผิดพลาดข้ึนไดระหวางการเขียนโปรแกรม โดยการ เขียนโปรแกรมนั้นสามารถแยกชุดคําสั่งท่ีใชบอยๆ หรือซ้ําๆ กันนี้ออกมา เพ่ือเอาไวเรียกใชงาน ซึ่ง ลกั ษณะนเี้ รยี กวา ฟงกชนั ซง่ึ ฟงกช นั ในภาษา PHP นั้นมี 2 ประเภท คอื 1. ฟงกชันท่ีผูใชงานสรางข้ึน เอง และ 2. ฟงกชันมาตรฐานของภาษา PHP ถาหากตองการสรางฟงกชันขึ้นเอง จะตองรูจักกับ สวนประกอบของฟงกชัน ซ่ึงแบงออกเปน 2 สวน คือ สวนการประกาศฟงกชัน และสวนการเรียกใช ฟงกชัน ซึ่งแตละสวนจะมีตัวแปรรับ และตัวแปรสง เพื่อสงผานคาตัวแปรใหแกฟงกชัน สามารถ สงผานคาตัวแปรได 2 วิธี คือ สงผานดวยคาของตัวแปร (Pass by value) และ สงผานดวยคาการ อางอิง (Pass by reference) ซ่ึงจะมีลักษณะท่ีแตกตางกันไป โดยภายในฟงกชันนอกจากจะมีคําสั่ง ตางๆที่กําหนดขึ้นเพ่ือเปนการทํางานของฟงกชัน ยังสามารถกําหนดรูปแบบการคืนคาจากฟงกชัน ดวยคําส่ัง return ไดอีกดวย โดยยังมีฟงกชันอ่ืนๆ ที่สามารถนําไปประยุกตใชกับการทํางานของ ฟง กช ัน ไดแก Recursive Function, include, function_exists ในสวนฟง กชนั มาตรฐานของภาษา PHP นั้นมีมากมาย ไดแก ฟงกชันเก่ียวกับคณิตศาสตร, ฟงกชันเก่ียวกับเวลาและวันท่ี และฟงกชัน เก่ยี วกับสตริง ทีน่ กั พฒั นาสามารถนาํ ไปใชใ นการเขียนโปรแกรมได คําถามทบทวน 74

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง1. ฟงกชนั คืออะไร 2. ฟง กช นั มีกี่ประเภท อะไรบาง 3. จงอธบิ ายวธิ ีการสงผานดว ยคาของตวั แปร (Pass by value) และการสงผา นดวยคา การอางองิ (Pass by reference) วา เหมอื นหรือแตกตา งกันอยางไร 4. ฟง กช นั เกยี่ วกับคณิตศาสตร มีอะไรบา ง จงยกตัวอยางมา 3 ฟงกช นั พรอมอธิบายการทํางาน 5. ฟงกชันเก่ยี วกับเวลาและวนั ที่ มีอะไรบา ง จงยกตัวอยางมา 3 ฟง กชนั พรอ มอธิบายการทาํ งาน 6. ฟงกช ันเกีย่ วกับสตรงิ มีอะไรบา ง จงยกตัวอยางมา 3 ฟง กชนั พรอ มอธบิ ายการทาํ งาน 7. จงอธบิ ายการทาํ งานของฟงกชัน include 8. จงอธิบายการทาํ งานของ Recursive Function 9. จงอธิบายวธิ กี ารสรา งฟงกชนั ดวยตวั เอง 10. จงอธบิ ายวิธีการเรียกใชง านฟงกชนั ทีส่ รา งข้นึ เอกสารอา งองิ อนรรฆนงค คุณมณ.ี (2555). พฒั นาเว็บ App แบบมืออาชีพดวย PHP+AJAX และ jQuery. นนททบรุ ี : ไอซดี .ี บัญชา ปะสีละเตสงั . (2557). พัฒนาเว็บแอปพลเิ คช่นั ดว ย PHP รว มกับ MySQL และ jQuery. กรุงเทพฯ : ซเี อด็ ยูเคช่ัน. 75

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง แผนบรหิ ารการสอนประจําบทท่ี 5 หัวขอ เนื้อหา 1. อารเรยคอื อะไร 2. อารเ รยห นง่ึ มติ ิ 3. อารเรยหลายมิติ 4. Assoicative Array 5. ฟง กช นั ที่ใชใ นการจดั การอารเรย 6. ฟงกชันเกี่ยวกบั การสรา งอารเรย 7. ฟงกชันในการเพม่ิ สมาชกิ ลงในอารเ รย 8. ฟง กช ันในการตรวจสอบขอ มลู ในอารเรย 9. ฟงกชนั ในการอานขอมูลจากอารเ รย 10. ฟงกช ันในการนับจาํ นวนสมาชิกในอารเรย 11. ฟงกชนั ในการเรยี งลําดบั ขอ มลู ในอารเรย 12. ตวั แปร $_SERVER 13. การจัดการไฟล 14. การเปดและปด ไฟล 15. การอา นขอมลู จากไฟล 16. การเขียนขอ มูลลงไฟล 17. การยายตัวแปรไฟล 18. การตรวจสอบไฟล 19. การจัดการไดเรก็ ทอรี วัตถปุ ระสงคเชงิ พฤติกรรม เมื่อนกั ศกึ ษาเรยี นจบบทเรยี นน้ีแลว สามารถ 1. บอกความหมายและประเภทของอารเ รยได 2. อธบิ ายวธิ ีการสรา งตัวแปรอารเ รยแตละประเภทได 3. บอกฟง กชนั ท่ใี ชในการจดั การอารเรยได 4. บอกฟงกช ันท่ใี ชในการจัดการไฟลไ ด 5. อธิบายหลักการทาํ งานของฟง กชันทีใ่ ชในการจัดการอารเรยได 6. อธิบายหลักการทํางานของฟงกช ันทใี่ ชในการจดั การไฟลได 76

มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบงวธิ ีสอนและกิจกรรมการเรียนการสอน 1. วธิ ีสอน 1.1 วธิ ีการสอนแบบบรรยาย โดยใหน กั ศึกษาฟงบรรยายจากเอกสารประกอบการสอน วิชา การพฒั นาฐานขอมลู บนเว็บ 1.2 อภิปรายรวมกนั ในช้นั เรียน 2. กิจกรรมการเรยี นการสอน 2.1 คําถามทบทวน 2.2 แบบฝกปฏิบตั ิ เร่อื ง การใชง านตัวแปรอารเ รย 2.3 Active Learning แบบ PLC สอ่ื การเรียนการสอน 1. เอกสารประกอบการสอน วิชา การพัฒนาฐานขอมูลบนเวบ็ 2. เวบ็ ไซตท มี่ เี น้ือหาเกีย่ วของกบั รายวชิ า 3. สอื่ สงั คมออนไลน การวัดผลและการประเมนิ ผล 1. สงั เกตการณม สี ว นรวมและการถาม-ตอบ 2. การทาํ งานตามท่ีไดรบั มอบหมาย 3. การทาํ คําถามทบทวน 4. การทําแบบฝกปฏิบตั ิ เรอ่ื ง การใชงานตวั แปรอารเรย 77

บทที่ 5 ตวั แปรอารเ รย และการจดั การไฟล เราเคยไดทําความรูจักกับขอมูลและตัวแปรกันมาบางแลวในบทท่ี 2 แตตัวแปรที่มี ความสําคัญอีกตัวหนึ่งคืออารเรย ซึ่งมีใหใชงานหลากหลายรูปแบบ อีกทั้งยังสามารถนําไปใช ประโยชนไดมากมาย และมีฟงกชันที่เขามาชวยในการจัดการตัวแปรอารเรยและจัดการไฟลอีกหลาย ตัว ซึ่งในบทนี้เราจะมาเรียนรูวิธีการจัดการกับตัวแปรและจัดการไฟลใหเขาใจและสามารถนําไปใช งานจริงได มหา ิวทยา ัลยราช ัภฏห ู่ม ้บานจอม ึบง อารเรยค ืออะไร อารเรย เปน ตวั แปรท่ีเก็บขอมูลชนดิ เดยี วกนั ไวใ นตัวเองไดมากกวา 1 คา (อนรรฆนงค คุณ มณ,ี 2555) เชน $intArr[0] $intArr[1] $intArr[2] $intArr[3] $intArr 15 25.45 142.25 2 ตัวแปรอารเรยชื่อ intArr ใชเ กบ็ ขอมูลชนดิ ตัวเลข 4 จาํ นวน $strArr[0] $strArr[1] $strArr[2] $strArr[3] $strArr PHP CSS JAVA HTML ตวั แปรอารเรยช ่อื strArr ใชเ ก็บขอมูลชนิดขอความ 4 จํานวน การเขาถึงขอมูลแตละตัวท่ีเก็บในอารเรยเราจะใช อินเด็กซ (index) มาอางถึงตัวแปรในแต ละลาํ ดับ ซึ่งอินเด็กซ (index) จะเปนตัวเลขจํานวนเต็มที่มีคาเร่ิมที่ 0 จนถึงลําดับสุดทายของตัวแปร ตัวสุดทาย จากตัวอยางดานบน ตัวแปรอารเรย intArr ตัวเลข 15 จะอยูในตําแหนงอินเด็กซที่ 0, ตัวเลข 25.45 จะอยูในตําแหนงอินเด็กซที่ 1, ตัวเลข 142.25 จะอยูในตําแหนงอินเด็กซที่ 2 และ ตวั เลข 2 จะอยใู นตําแหนงอนิ เด็กซท ี่ 3 เปน ตน รูปแบบการเก็บขอมูลในอารเรย เรียกวา มิติ ซึ่งเราสามารถแบงมิติของอารเรยไดเปน 2 รูปแบบ คือ - อารเ รยหนง่ึ มติ ิ - อารเ รยห ลายมติ ิ 78


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook