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 วิชา การเขียนโปรแกรมคอมพวิเตอร์เพื่องานสารสนเทศ1

วิชา การเขียนโปรแกรมคอมพวิเตอร์เพื่องานสารสนเทศ1

Published by lavanh9979, 2021-08-23 04:59:24

Description: วิชา การเขียนโปรแกรมคอมพวิเตอร์เพื่องานสารสนเทศ1

Search

Read the Text Version

85 สามารถแสดงในรูปแบบผงั งานดงั ภาพที่ 4.9 กาหนดค่าตวั แปรเร่ิมตน้ เงื่อนไขการตรวจสอบให้ สิน้ สุดการทางานซ้า คาสั่งทีต่ อ้ งดาเนนิ การ การเพมิ่ หรอื ลดคา่ ตัวแปร ซ้า ภาพท่ี 4.9 คาสั่ง for แสดงในรูปแบบผังงาน ทีม่ า : (zentut, 2016) ตวั อย่างที่ 4.31 การใช้ประโยคคาสั่ง for (zentut, 2016) กาหนดค่าตวั แปรเร่มิ ตน้ เง่ือนไขการตรวจสอบให้ ส้นิ สดุ การทางานซา้ < ?php for ($i = 1; $i < 5; $i+ + ) { echo $i . '< br/ > '; } การเพิ่มคา่ ตวั แปรข้ึน 1 คา่ ?> จากตัวอย่างข้างต้นโปรแกรมประกาศค่าตัวแปรเร่ิมต้น เง่ือนไขการตรวจสอบให้สิน้ สดุ การ ทางานซ้า และการเพิ่มค่าของตัวแปรไว้ภายในวงเล็บของคาสั่ง for น้ันคือตัวแปร “i” มีค่าเป็น 1 ( $i=1 ) จากน้ันตรวจสอบเง่ือนไขว่าค่าตัวแปร “i” น้อยกว่า 5 หรือไม่ ( $i < 5 ) พร้อมกาหนดให้ เพม่ิ คา่ ตัวแปร “i” ขึ้น 1 คา่ ( $i++ ) ถา้ เง่ือนไขเป็นจริงให้แสดง (echo) ค่าตวั แปร “i” ออกทางเว็บ

86 เบราวเ์ ซอร์ พรอ้ มข้นึ บรรทดั ไม่ (<br>) ดาเนินงานซ้าไปจนกระทง่ั เงื่อนไขเปน็ เทจ็ จงึ หยดุ การทางาน ซา้ นน่ั คอื ค่าตัวแปร “i” มากกว่าคา่ 5 จบการทางานของโปรแกรม 2.3 คาสัง่ foreach เป็นคาสั่งวนรอบการทางานเหมือนคาสั่ง for แต่คาสั่งน้ีจะใช้กบั ตวั แปรท่ีมีข้อมูลชนิดอารเ์ รย์ ซึง่ จะใชเ้ พ่ือเขา้ ถึงข้อมลู ชนดิ นี้ สาหรับการวนรอบนน้ั จะวนเท่ากบั จานวน สมาชิกทีจ่ ัดเก็บไวใ้ นตวั แปรอาร์เรย์ มรี ปู แบบและตัวอยา่ งการใช้งานดังน้ี. รูปแบบ ตัวแปรอารเ์ รย์ foreach ($array as $element) { / / process element here; } คาส่งั ทต่ี ้องดาเนินการซ้า จากรูปแบบข้างต้น คาสั่ง foreach จะดึงข้อมูลจากสมาชิกแต่ละตัวของตัวแปรอาร์เรย์ “array” มาใส่ไว้ในตัวแปร “element” ท่ีเก็บค่าสมาชิก โดยจะดึงต้ังแต่ตัวแรกไปจนถึงตัวสุดท้าย ดังนั้น ในแต่ละรอบของการวนรอบด้วยคาสั่ง foreach ค่าที่เก็บไว้ในตัวแปร “element” จะ เปล่ียนแปลงไปในแตล่ ะรอบตามค่าสมาชิกท่เี กบ็ ไว้ในตวั แปร “array” ตวั อยา่ งท่ี 4.32 การใชป้ ระโยคคาส่งั foreach (zentut, 2016) < ?php $scores = [ 1,2,3] ; foreach ($scores as $score) { echo $score; } ?> จากตัวอย่างข้างต้นโปรแกรมประกาศตัวแปรชนิดอาร์เรย์ช่ือ “scores” โดยมีสมาชิก 3 ค่าคือ 1, 2 และ 3 จากนัน้ เริ่มประมวลผลคาสั่ง foreach โดยนาค่าสมาชิกของตวั แปร “scores” ไป เก็บไว้ในตัวแปร “score” ค่าแรกคือ 1 แล้วเข้าไปดาเนินการคาส่ังภายในวงเล็บปีกกา โดยให้แสดง ค่าตัวแปร “score” ออกทางเว็บเบราว์เซอร์ วนรอบแสดงค่าที่เก็บในตัวแปร “score” ซ้าไปจนถึง สมาชิกตวั สุดทา้ ยที่เกบ็ อย่ใู นตัวแปร “scores”

87 3. กลุม่ คาสง่ั แบบกระโดดออกจากคาสั่งวนรอบ การทางานแบบการวนรอบ บางครั้งอาจต้องหยุดการทางานของคาสั่งนั้นทันที ถึงแม้ จานวนการวนรอบจะยงั ทางานไม่ครบก็ตาม ซง่ึ ในภาษา PHP มีกลุ่มคาสั่งที่สามารถทางานในลักษณะ กระโดดขา้ มการทางาน หรือหยดุ การทางานดงั น้ี 3.1 คาสง่ั continue เมอ่ื โปรแกรมประมวลผลแล้วพบคาส่ังนจี้ ะถือวา่ การทางานของรอบ นั้นสิ้นสุดลง และจะกระโดดไปทางานของการวนรอบถัดไปทันทีโดยไม่สนใจคาสั่งท่ีเหลือของการ วนรอบทพี่ บคาสง่ั continue ดงั ตัวอย่างท่ี 4.33 ตัวอยา่ งท่ี 4.33 การใช้ประโยคคาสงั่ continue ทีเ่ ขียนสครปิ ต์แทรกอยูร่ ะหว่างแท็กภาษา HTML < html> < body> < ?php $array = array( 1, 2, 3, 4, 5); foreach( $array as $value ) { สิ้นสุดรอบ แล้ววนรอบถัดไป if( $value = = 3 )continue; echo \"Value is $value < br> \"; } ?> ผลลัพธ์ Value is 1 Value is 2 < / body> Value is 4 < /html> Value is 5 จากตัวอย่างข้างต้น โปรแกรมประกาศตัวแปรอาร์เรย์ช่ือ “array” มีสมาชิกเป็นตัวเลข 1 ถงึ 5 แลว้ ใชคาส่ัง foreach() นาค่าสมาชิกของตัวแปร “array” ไปเกบ็ ไวใ้ นตวั แปร “value” ค่าแรก คือ 1 จากนั้นใช้คาส่ัง if() ตรวจสอบค่าของตัวแปร “value” ว่ามีค่าเท่ากับ 3 หรือไม่ กรณีเป็นจริง จะพบคาส่ัง continue ซึง่ จะเป็นการกาหนดใหส้ ิ้นสุดการทางานของรอบน้ี ไมท่ าคาสง่ั ที่เหลอื (echo “Value is $value <br>”) ออกนอกรอบไปทางานรอบถัดไปเลย กรณีเป็นเท็จจะแสดงข้อความ “Value is ” ตามด้วยค่าตัวแปร “value” และขึ้นบรรทัดใหม่ (<br>) 3.2 คาสั่ง break เป็นคาส่ังกระโดดออกจากการทางานน้ันไปเลย หรือออกจากการวนซ้า ท้ังหมด เช่น คาสั่ง for, while, do…while เป็นต้น โดยไม่สนว่าเง่ือนไขการทางานเป็นจริงหรือเท็จ หรอื วนครบรอบการทางานหรอื ไม่ ดังตัวอยา่ งท่ี 4.34

88 ตวั อยา่ งที่ 4.34 การใชป้ ระโยคคาสงั่ break ทเ่ี ขยี นสครปิ ต์แทรกอยรู่ ะหว่างแท็กภาษา HTML < html> < body> < ?php $i = 0; while( $i < 10) { $i+ + ; if( $i = = 3 ) break; echo $i ; echo “<br>”; } echo (\"Loop stopped at i = $i\" ); ?> < / body> ผลลัพธ์ < /html> จากตัวอย่างข้างต้น โปรแกรมประกาศตัวแปร “i” มีค่าเป็น 0 แล้วใช้คาส่ัง while ตรวจสอบเง่ือนไขการทาซ้าว่า ค่าตวั แปร “i” มคี า่ นอ้ ยกว่า 10 หรอื ไม่ ($i<10) ถา้ เงอื่ นไขเปน็ จริงให้ เพ่ิมค่าตัวแปร “i” ขึ้น 1 ค่า ($i++) แล้วตรวจสอบเงื่อนไขถัดมาว่า ค่าตัวแปร “i” มีค่าเท่ากับ 3 หรอื ไม่ ($i==3) ถ้าเปน็ จรงิ ใหส้ ้ินสุดการทางานแลว้ ออกนอกการวนรอบไปทาคาสั่งถัดไปคือ ให้แสดง ข้อความ “Loop stopped at i = ” ตามด้วยค่าตัวแปร i และถ้าเป็นเท็จ ($i ไม่เท่ากับ 3) จะ ประมวลผลส่ัง “echo $i” และ “echo <br>” ซึ่งเป็นการสั่งให้แสดงค่าตัวแปร “i” และข้ึนบรรทัด ใหม่

89 สรุป โปรแกรมท่ีเขียนด้วยภาษา PHP จะถูกประมวลผลที่ฝ่ังเซอร์เวอร์ โดยเม่ือถูกเรียกใช้จาก เว็บเบราว์เซอร์จะประมวลผลและสร้างผลลัพธ์เป็นไฟล์ HTML ส่งมายังเครื่องไคลเอ็นต์เพ่ือให้เว็บ เบราว์เซอร์แสดงผล มีรูปแบบของภาษาคือ จะใช้แท็กสาหรับบอกจุดเร่ิมต้นและส้ินสุดของคาสั่ ง ภาษา 2 รปู แบบคอื <?php ...?> และ <script language= “php”> … </script> ภาษา PHP มตี วั แปรและค่าคงที่ทีเ่ ปน็ ตวั แทนพนื้ ทใี่ นหนว่ ยความจาสาหรบั ใชใ้ นการเกบ็ ข้อมลู ระหว่างการประมวลผล โปรแกรม มีคาส่ังเบื้องต้นที่ใช้งานบ่อยคือ echo และ print ซ่ึงเป็นคาส่ังในการแสดงผลของตัวแปร ออกทางเว็บเบราว์เซอร์ ตัวดาเนินการท่ีใช้ในภาษาแบ่งออกได้ 4 ประเภทคือ ตัวดาเนินการเก่ียวกับ ตวั เลข ตวั ดาเนนิ การในการกาหนดค่า ตวั ดาเนินการในการเปรียบเทยี บ และตัวดาเนนิ การทางตรรกะ โครงสร้างควบคุมของภาษามีอยู่ 3 รูปแบบดงั นี้ กลุ่มคาส่ังแบบทางเลือกท่ีใช้เปรียบเทียงเงื่อนไข เพื่อ เลือกทาท่ีประกอบด้วยคาส่ัง if, if...else, if...elseif และ switch...case กลุ่มคาสั่งแบบวนรอบท่ีจะ ดาเนินการแบบวนรอบชดุ คาสง่ั ซ้าๆ มีคาสงั่ while, do...while, for และ foreach สดุ ทา้ ยกลุ่มคาส่ัง แบบกระโดดออกจากคาส่งั วนรอบ มใี ชง้ านอยู่ 2 คาส่งั คอื continue และ break แบบฝึกหัด 1. จงอธบิ ายความหมายของตัวแปร 2. ชนิดของตัวแปรมีกีช่ นดิ อะไรบ้างจงอธิบาย 3. ใหน้ กั ศึกษาเขียนโปรแกรมตามรายละเอยี ดของอัลกอริทึมต่อไปน้ี Start Score=65 NY Score>=60 Write “สอบไม่ผา่ น” Write “สอบผา่ น” Stop

90 4. ใหน้ กั ศึกษาเขยี นโปรแกรมตามรายละเอยี ดของอัลกอริทมึ ต่อไปนี้ Start a=25, b=10 sum=0 sum=a + b Write sum Stop

91 เอกสารอา้ งอิง ชาญชยั ศภุ อรรถกร. (2558). สรา้ งเว็บแอพพรเิ คชนั PHP MySQL+AJAX jQuery ฉบบั สมบูรณ์. กรงุ เทพฯ: รีไวว่า. พรวนา รตั นชโู ชค. (2557). การโปรแกรมบนเวลิ ดไ์ วด์เว็บ. [ม.ป.ท.]. สมศักดิ์ โชคชัยชุติกุล. (2550). Insight PHP ฉบับสมบูรณ.์ กรงุ เทพฯ: โปรวิชนั่ Guru99. (2016). PHP forms handing. 2016, May 31. [online], Available HTTP: https://www.guru99.com/control-structures-and-loops.html SoraTemplates. (2016). Conditional if-else statement with example in c language. 2016, May 31. [online], Available HTTP: https://dotprogramming. blogspot.com/2016/02/ conditional-if-else-statement-with.html. Tutorial Republic. (2016). PHP-tutorial. 2016, May 31. [online], Available HTTP: https://www.tutorialrepublic.com/php-tutorial/php-if-else-statements.php Tutorialspoint. (2016). PHP-Loop Types. 2016, June 25. [online], Available HTTP: https://www.tutorialspoint.com/php/php_loop_types.htm. Zentut. (2016). PHP if Statement. 2016, June 25. [online], Available HTTP: http://www.zentut.com/php-tutorial/php-if/

แผนบรหิ ารการสอนประจาบทท่ี 5 เนื้อหาประจาบทท่ี 5 ฟังกช์ ัน (Functions) ของภาษา PHP ลกั ษณะทวั่ ไปของฟังก์ชนั การประกาศฟังก์ชัน การเรียกใช้งานแบบไม่มีการส่งผ่านคา่ การเรียกใชง้ านแบบมีการส่งผา่ นค่า การสร้างฟังก์ชนั ไวใ้ ชง้ าน การคนื ค่าจากฟังก์ชัน การส่งผา่ นคา่ ให้แก่ฟังกช์ ัน ขอบเขตการเรียกใช้ตัวแปร การนาเข้าสคริปต์จากไฟล์อนื่ มาใช้งาน การเรยี กใช้ฟงั ก์ชนั ท่ีมอี ยูใ่ น PHP วตั ถุประสงค์เชงิ พฤตกิ รรม เม่อื ศึกษาบทเรียนนี้แล้ว ผู้เรยี นมีพฤติกรรมดังนี้ 1. อธบิ ายเกี่ยวกับฟังกช์ ัน พารามเิ ตอร์ การคืนและส่งผา่ นคา่ ในฟงั ก์ชัน 2. จาแนกประเภทของการสง่ ผ่านค่าให้แกฟ่ งั กช์ ัน 3. บอกขอบเขตการเรยี กใชต้ ัวแปรของฟังก์ชัน 4. สามารถเขียนโปรแกรมสร้างและเรียกใช้งานฟังก์ชันท่ีสร้างข้ึนมาเองหรือสาเร็จรูปของ ภาษา PHP ตามแบบฝึกหดั ประจาบทได้อย่างเหมาะสม วิธีสอนและกจิ กรรมการเรียนการสอน 1. วธิ ีสอน 1.1 บรรยาย และสาธิต 1.2 อภิปราย คน้ คว้าเพิ่มเติม 1.3 นักศกึ ษาทาแบบฝึกหัด และผสู้ อนตรวจแบบฝกึ หดั 1.4 มอบหมายแบบฝกึ หดั เป็นการบา้ นเพื่อทบทวนบทเรยี น 2. กิจกรรมการเรยี นการสอน สัปดาห์ 10-11 (8 ช่วั โมง) 2.1 ผู้สอนอธิบายและสาธิตเน้ือหา เปดิ โอกาสให้ผู้เรยี นซักถามปัญหาในหัวขอ้ ท่ียัง ไม่เขา้ ใจ ให้ผเู้ รียนค้นควา้ เพิ่มเตมิ จากอินเตอร์เน็ตและเอกสารประกอบการสอน อภปิ ราย และสรปุ เน้ือหาสาระสาคัญรว่ มกนั

94 2.2 ผเู้ รยี นทาแบบฝกึ หัดประจาบทและตอบคาถามลงใน Google Classroom เพอื่ ให้ผสู้ อนตรวจ อธิบายและชี้แจงคาตอบท่ีถกู ต้อง ส่ือการเรยี นการสอน 1. เอกสารประกอบการสอนการเขยี นโปรแกรมคอมพวิ เตอร์เพ่ืองานสารสนเทศ 1 2. เครือ่ งคอมพิวเตอร์ 3. PowerPoint เนอ้ื หาบทที่ 5 4. สอ่ื ออนไลน์ช่วยสอน : โปรแกรม Google Classroom การวดั ผลและประเมนิ ผล 1. การวัดผล สงั เกตจากการตอบคาถาม ตรวจแบบฝกึ หัด 2. การประเมนิ ผล ผเู้ รียนสามารถตอบคาถามและทาแบบฝึกหดั ไดถ้ กู ตอ้ ง ร้อยละ 80

บทท่ี 5 ฟงั ก์ชัน (Functions) การเขียนโปรแกรมย่อยหรือฟังก์ชันเป็นการเขียนโปรแกรมที่ช่วยให้การจัดการต่างๆ ทาได้ ง่ายข้ึน เช่น การเพิ่ม การแก้ไข และลบคาสั่งในโปรแกรม เป็นต้น เนื่องจากแต่ละฟังก์ชันจะแบ่ง หน้าที่การทางานชัดเจน ส่วนใหญ่จะเลือกลักษณะการทางานซ้า ๆ มาเขียนเป็นฟังก์ชันหรือมีการ เรียกให้ฟังก์ชันน้ันทางานหลายคร้ัง ซึ่งภายในบทมีเนื้อหาเกี่ยวกับลักษณะทั่วไปของฟังก์ชัน การ ประกาศฟังก์ชัน การเรียกใช้งานแบบไม่มีการส่งผ่านค่า การเรียกใช้งานแบบมีการส่งผ่านค่า การคืน ค่าจากฟังกช์ นั การสง่ ผ่านค่าใหแ้ ก่ฟงั กช์ นั ขอบเขตการเรียกใชง้ านตวั แปร การนาเข้าสคริปตจ์ ากไฟล์ อ่ืนมาใช้งาน การเรียกใช้ฟังก์ชันที่มีอยู่ใน PHP เพ่ือเป็นการเพิ่มความสะดวกและง่ายในการเขียน โปรแกรมให้กบั นกั เขียนโปรแกรม ลักษณะทวั่ ไปของฟงั ก์ชนั ฟังก์ชัน หมายถึงโปรแกรมย่อยที่เขียนขึ้นมาเพื่อทางานอย่างใดอย่างหน่ึงที่มีการทางาน บ่อยคร้ัง ภาษา PHP จะมีฟงั กช์ ันอยู่ 2 ประเภทคือ (ชาญชัย ศุภอรรถกร, 2558: 69) 1. ฟังก์ชันท่ีผู้ใช้งานสร้างข้ึนมาเอง (User defined functions) ซึ่งเป็นฟังก์ชันที่นักเขียน โปรแกรมสร้างข้นึ มาเพอ่ื วัตถปุ ระสงค์บางอยา่ ง ส่วนรายละเอียดจะกลา่ วในหวั ข้อถัดไป 2. ฟังก์ชันท่ีมีอยู่ใน PHP (Built in functions) เป็นฟังก์ชันท่ี PHP มีให้เรียกใช้อยู่แล้ว เช่น ฟังก์ชัน var_dump(), trim(), substr(), max(), min() และ date() เป็นต้น ซ่ึงในบทน้ีจะแนะนา ฟังกช์ ันทีม่ กี ารเรียกใชง้ านบอ่ ยและเหมาะท่จี ะนามาใช้ในการเขยี นโปรแกรม การประกาศฟงั กช์ ัน การประกาศฟังก์ชันเป็นการสร้างฟังก์ชันข้ึนมาใช้งานตามวัตถุประสงค์ท่ีต้องการ เม่ือสร้าง ฟงั กช์ ันขน้ึ มาแลว้ การใชง้ านฟงั กช์ นั จะตอ้ งมีการเรียกช่ือฟังกช์ นั จึงจะสามารถใช้งานได้ ส่วนการตั้งชอ่ื ฟังก์ชันจะใช้หลักการเดียวกันกับการตั้งชื่อให้กับตัวแปร ควรต้ังให้สัมพันธ์กับการทางานหรือหน้าท่ี ของฟงั กช์ นั และไม่ซา้ กนั รูปแบบของการประกาศฟงั ก์ชนั มีดังน้ี รปู แบบ ช่ือฟงั ก์ชนั ชุดคาสัง่ ท่จี ะ ประมวลผลเขยี นไว้ function functionName(){ ภายใน {…} / / Code to be executed }

96 ในการสร้างฟังก์ชันขึ้นมาใช้งานสามารถเขียนแทรกไว้ในภาษา HTML หรือเขียนเฉพาะ สครปิ ตภ์ าษา PHP กไ็ ด้ ตัวอย่างที่ 5.1 แสดงการสรา้ งฟงั ก์ชนั แทรกไว้ในไฟลภ์ าษา HTML ตวั อยา่ งที่ 5.1 การประกาศหรือสรา้ งฟงั กช์ ันข้นึ มาใช้งานเอง < html> < head> < title> Writing PHP Function< / title> < / head> < body> ประกาศฟงั ก์ชนั < ?php / * Defining a PHP Function * / function writeMessage() { echo \"You are really a nice person, Have a nice time!\"; } / * Calling a PHP Function * / เรียกใช้ฟงั ก์ชนั w r it eMessage( ) ; ?> < / body> < /html> จากตัวอย่างข้างต้น โปรแกรมสร้างหรือประกาศฟังก์ชนั ชื่อ “writeMessage” โดยทาหน้าท่ี แสดงข้อความ “You are really a nice person, Have a nice time!” จบการทางานของฟังก์ชัน เมื่อในโปรแกรมมีการสร้างฟังก์ชันแล้วจะเรียกใช้โดยการเรียกชื่อฟังก์ชัน ถ้าไม่เรียกใช้ฟังก์ชัน ฟังกช์ นั กจ็ ะไมถ่ ูกประมวลผล การเรยี กใช้งานแบบไมม่ ีการส่งผา่ นค่า หลังจากที่ประกาศฟังก์ชันแล้วและต้องการใช้งานฟังก์ชันสามารถทาได้โดยเรียกช่ือฟังก์ชัน เท่านั้น ซึ่งการเรียนใช้งานฟังก์ชันแบบไม่มีการส่งผ่านค่าจะหมายถึงเรียกแค่ชื่อฟังก์ชัน ไม่ต้องส่งค่า อะไรไปให้ฟังกช์ นั นาไปประมวลผล ดงั แสดงตามตวั อยา่ งที่ 5.2 (ชาญชัย ศภุ อรรถกร, 2558: 70) ตัวอย่างท่ี 5.2 การเรียกใช้งานฟงั ก์ชันแบบไม่มกี ารสง่ ผ่านคา่ ทส่ี รา้ งโดยใช้เฉพาะสครปิ ตภ์ าษา PHP เทา่ นน้ั < ?php / / define a function that displays add number function function add_numbers(){ echo 1 + 2; } / / Calling function เรยี กใช้ฟงั กช์ นั โดยไมม่ ีการส่งผา่ นค่า add_numbers (); ?> จากตัวอย่างที่ 5.2 โปรแกรมมีการประกาศฟังก์ชันชื่อ “add_number” ที่ทาหน้าท่ีบวก ตัวเลข 2 จานวน คือ 1 กบั 2 แลว้ แสดงผลรวมออกทางเว็บเบราวเ์ ซอร์ สนิ้ สุดชดุ คาสง่ั ในฟงั กช์ นั เมื่อ

97 ต้องการใช้งานฟังก์ชันเพียงเรียกช่ือฟังก์ชัน นั้นคือ “add_number();” ซ่ึงเป็นการเรียกใช้ฟังก์ชัน แบบไมม่ ีการส่งผ่านค่า การเรยี กใชง้ านแบบมกี ารสง่ ผ่านคา่ ในบางคร้งั การใชง้ านฟังกช์ ันต้องการความยืดหยุ่นมากขนึ้ โดยผเู้ ขยี นโปรแกรมสามารถสร้าง ฟังก์ชันในลักษณะท่ีมีการส่งผ่านค่า หรือการส่งค่าบางค่าไปให้ฟังก์ชันนาไปประมวลผลซ่ึงมีความ ยืดหยุ่นในการใช้งานมากกว่าการเรียกใช้งานแบบไม่มีการส่งผ่านค่า ดังมีรูปแบบตามตัวอย่างที่ 5.3 และ 5.4 ดังน้ี (ชาญชยั ศุภอรรถกร, 2558: 71) ตวั อยา่ งที่ 5.3 การเรยี กใช้งานฟังกช์ ันแบบมีการสง่ ผ่านคา่ < html> < head> < title> Writing PHP Function with Parameters< / title> < / head> < body> < ?php / / define a function function addFunction($num1, $num2) { $sum = $num1 + $num2; echo \"Sum of the two numbers is : $sum\"; } / / Calling function addFunction(10, 20); ?> เรยี กใช้ฟงั ก์ชัน โดยมกี าร < / body> < /html> สง่ ผา่ นค่า 2 คา่ คือ 10 และ 20 จากตัวอย่างข้างต้นเป็นโปรแกรมสาหรับสร้างฟังก์ชัน “addFunction” แทรกไว้ระหว่าง แท็ก <body>…</body> ของภาษา HTML ฟังก์ชันนี้มีหน้าที่บวกตัวเลข 2 จานวนท่ีได้จากการ ส่งผ่านค่าตอนเรียกใช้งานฟังก์ชันคือ ตัวแปร “num1” และ “num2” นาค่าของท้ัง 2 ตัวแปรมา บวกกันแล้วเก็บไว้ในตัวแปร “sum” แล้วแสดงข้อความ “Sum of the two numbers is : ” ตาม ด้วยค่าผลรวมท่ีเก็บไว้ในตัวแปร “sum” จบการทางานของฟังก์ชัน เม่ือประกาศฟังก์ชันแล้ว โปรแกรมเรียกใช้งานฟังก์ชันแบบมีการส่งผ่านค่า 2 ค่าไปให้ฟังก์ชันคือ 10 กับ 20 นาไปเก็บไว้ในตัว แปร “num1” และ “num2” ของฟงั กช์ ันตามลาดับ ตัวอยา่ งท่ี 5.4 การเรียกใช้งานฟงั ก์ชนั แบบมกี ารสง่ ผ่านคา่ < ?php / / define a function that displays name function display_name($name) { เรียกใช้ฟังกช์ นั โดยมี echo \"Hello \" . $name; } การส่งผา่ นค่า / / Calling function display_name(\"Martin Luther King\"); ?>

98 จากตัวอย่างข้างต้นเป็นโปรแกรมสร้างฟังก์ชันที่มีเฉพาะสคริปต์ภาษา PHP ช่ือ “display_name” ซ่ึงมีหน้าที่แสดงข้อความ “Hello” ตามด้วยค่าท่ีเก็บไว้ในตัวแปร “name” สิ้นสดุ การประกาศฟังกช์ นั จากน้นั โปรแกรมมีการเรียกใช้งานฟังกช์ นั แบบมีการส่งผ่านค่า 1 คา่ ตามท่ี ฟังก์ชนั ต้องการคือ “Martin Luther King” ไปให้ฟังก์ชันแสดงผล การคืนค่าจากฟงั ก์ชนั จากหัวข้อท่ีผ่านมาการเรียกใช้งานฟังก์ชันสามารถส่งผ่านค่าไปให้ฟังก์ชันประมวลผลเพียง อยา่ งเดียว แตย่ ังไม่มีการคืนค่าใดๆ จากฟงั ก์ชันที่ได้เรียกใช้งาน ในภาษา PHP สามารถกระทาได้โดย ใช้คาส่ัง return ตามด้วยตัวแปรหรือค่าท่ีต้องการส่งคืน ตัวอย่างที่ 5.5 แสดงฟังก์ชันท่ีมีการคืนค่า จากฟงั กช์ ัน ดังน้ี (ชาญชยั ศภุ อรรถกร, 2558: 72) ตัวอยา่ งที่ 5.5 การสรา้ งฟังก์ชนั ท่มี กี ารคนื คา่ กลับไปยังตาแหน่งทเี่ รยี กใช้ฟงั กช์ นั < ?php / / Defining function function getSum($num1, $num2){ $total = $num1 + $num2; return $total; การคืนค่า } / / Calling Function and Printing returned value echo getSum(5, 10); / / Outputs: 15 ?> จากตัวอย่างท่ี 5.5 โปรแกรมสร้างฟังก์ชัน “getSum” โดยทาหน้าท่ีบวกตัวเลข 2 จานวนที่ เก็บไว้ในตัวแปร “num1” และ “num2” แล้วเก็บผลบวกน้ันไว้ในตัวแปร “total” พร้อมส่งค่าน้ัน กลับคืนไปยังตาแหน่งที่มีการเรียกใช้งาน สิ้นสุดการประกาศฟังก์ชัน จากนั้นโปรแกรมเรียกใช้งาน ฟงั กช์ ันแบบมีการส่งผ่านคา่ 2 ค่าตามทฟ่ี ังก์ชนั ต้องการคือ 5 และ 10 ไปให้ฟงั ก์ชนั เม่ือฟงั ก์ชันส่งค่า กลบั คนื มาจะนาคา่ นั้นไปแสดงผลออกทางเว็บเบราวเ์ ซอร์ดว้ ยคาส่งั echo การส่งผา่ นคา่ ให้แกฟ่ ังกช์ ัน ในการส่งผ่านค่าของตัวแปรให้กบั ฟงั ก์ชัน มวี ธิ กี ารส่งผา่ นค่าอยู่ 2 รูปแบบคือ (ชาญชยั ศุภ อรรถกร, 2558: 73-74; สมศักดิ์ โชคชยั ชตุ กิ ลุ , 2550: 126-127) 1 การส่งผ่านดว้ ยคา่ (Pass by value) เป็นการส่งค่าผ่านตัวแปรทเี่ รียกวา่ พารามเิ ตอร์เข้าไป ในฟังก์ชัน ส่วนภายในฟังก์ชันจะมีตัวแปรรับท่ีเรียกว่า อาร์กิวเมนท์ รอรับค่าที่ส่งมาตอนเรียกใช้งน ฟังก์ชัน หากภายในฟังก์ชันมีการเปล่ียนแปลงค่าของตัวแปรดังกล่าว จะไม่ส่งผลต่อค่าของตัวแปรที่ อยูน่ อกฟงั ก์ชัน ซง่ึ ถงึ ว่าเป็นตัวแปรคนละตัวกัน ดงั แสดงไว้ในตวั อย่างที่ 5.6

99 ตวั อยา่ งที่ 5.6 การส่งผ่านด้วยค่า (Pass by value) < ?php / * Defining a function that addition a number by itself and return the new value * / function selfAddition($number){ $number += $number; return $number; ส่งผา่ นด้วยค่า ผา่ น } ตัวแปรอารก์ วิ เมนต์ $mynum = 10; echo $mynum; / / Outputs: 10 self Addit ion( $m ynum ) ; ตัวแปรพารามเิ ตอร์ echo $mynum; / / Outputs: 10 ?> จากตัวอย่างข้างต้น โปรแกรมสร้างฟังก์ชัน “selfAddition” มีหน้าท่ีบวกตัวเลขที่เก็บอยู่ใน ตัวแปร “number” ที่มีการส่งผ่านด้วยค่า แล้วเก็บผลรวมไว้ในตัวแปร “number” เหมือนเดิม พร้อมส่งค่าน้ันกลับคืนไปยังตาแหนง่ ที่มีการเรียกใชง้ าน สิ้นสุดการประกาศฟังก์ชัน จากนั้นโปรแกรม กาหนดค่าตัวแปร “mynum” เป็น 10 นาค่าตัวแปรแสดงผลออกทางหน้าจอด้วยคาสั่ง echo มีการ เรียกใชง้ านฟังกช์ นั แบบมีการส่งผา่ นตัวแปรพารามเิ ตอร์ “mynum” วิธกี ารส่งผา่ นดว้ ยคา่ จะทาให้ตัว แปร “mynum” ที่อยู่นอกไฟล์ชันกับตัวแปร “number” ที่อยู่ในฟังก์ชันเป็นคนละตัวแปร เมื่อมี การเปล่ียนแปลงค่าตวั แปร “number” จากคาสั่ง “$number += $number;” ท่ีภายในฟังก์ชนั จะ ไม่ส่งผลให้ตัวแปร “mynum” ที่อยู่นอกฟังก์ชันมีค่าเปล่ียนไป ดังนั้นเมื่อแสดงค่าท่ีเก็บในตัวแปร “mynum” ซงึ่ ยังคงมเี ป็นเปน็ 10 เท่าเดิมตามทไี่ ดก้ าหนดให้กอ่ นเรยี กใชง้ านฟังก์ชัน 2 การส่งผ่านด้วยการอ้างอิง (Pass by reference) เป็นการส่งค่าผ่านตัวแปรที่เรียกว่า พารามิเตอร์เขา้ ไปในฟังกช์ ัน หากภายในฟังกช์ นั มีการเปลย่ี นแปลงคา่ ของตัวแปรดังกลา่ ว จะส่งผลให้ ค่าของตัวแปรท่ีอยู่นอกฟังก์ชันเปลี่ยนไปด้วย ซ่ึงเราจะถึงว่าเป็นตัวแปรตัวเดียวกัน เม่ือต้องการ ส่งผ่านด้วยวิธีน้ีจะนาสัญลักษณ์ & มาวางไว้หน้าตัวแปรท่ีเรียกว่าอาร์กิวเมนต์ ซึ่งเป็นตัวแปรรับของ ฟังก์ชัน ดังตัวอย่างที่ 5.7 ตวั อยา่ งที่ 5.7 การส่งผ่านดว้ ยการอา้ งอิง (Pass by reference) < ?php / * Defining a function that multiply a number by itself and return the new value * / function selfMultiply(&$number){ ส่งผา่ นดว้ ยการอ้างอิง ผา่ นตัว $number * = $number; แปรอาร์กิวเมนต์ หรือตวั แปรรบั return $number;

100 } $mynum = 5; ตวั แปรพารามเิ ตอร์ echo $mynum; / / Outputs: 5 หรือตวั แปรส่ง / / Calling Function self Mult iply( $m yn um ) ; echo $mynum; / / Outputs: 25 ?> จากตัวอย่างข้างต้น โปรแกรมสร้างฟังก์ชัน “selfMultiply” มีหน้าที่คูณตัวเลขที่เก็บอยู่ใน ตัวแปร “number” ท่ีส่งผ่านด้วยการอ้างอิง แล้วเก็บผลคูณไว้ในตัวแปร “number” เหมือนเดิม พร้อมส่งค่านั้นกลับคืนไปยังตาแหนง่ ที่มีการเรียกใช้งาน ส้ินสุดการประกาศฟังก์ชัน จากน้ันโปรแกรม กาหนดค่าตัวแปร “mynum” เป็น 5 นาค่าตัวแปรแสดงผลออกทางหน้าจอด้วยคาส่ัง echo มีการ เรยี กใชง้ านฟงั กช์ นั แบบมีการส่งคา่ ผ่านตัวแปรพารามิเตอร์ “mynum” จากการสง่ ผ่านดว้ ยวธิ ีอ้างอิง ส่งผลให้ตวั แปรที่อยนู่ อกฟังก์ชันเป็นตัวเดยี วกันกับที่อยู่ภายในฟังกช์ ัน ดังนนั้ ตวั แปร “mynum” กบั ตัวแปร “number” เป็นตัวเดียวกัน เม่ือมีการเปล่ียนแปลงค่าตัวแปร “number” จากคาส่ัง “$number *= $number;” ที่อยู่ภายในฟังก์ชันจะส่งผลให้ตัวแปร “mynum” ท่ีอยู่นอกฟังก์ชัน เปล่ียนตามไปด้วย ดังนั้นเม่ือแสดงค่าท่ีเก็บในตัวแปร “mynum” จึงมีค่าเดียวกันกับค่าในตัวแปร “number” คือ 25 ขอบเขตการเรียกใชต้ ัวแปร ในการประกาศตัวแปรไว้ใช้งาน ถ้าประกาศไว้ภายนอกฟังก์ชันจะไม่สามารถนามาใช้ภายใน ฟงั กช์ ันได้ เช่นเดียวกับการประกาศตวั แปรไว้ภายในฟังกช์ ันก็ไมส่ ามารถนามาใชง้ านภายนอกฟังก์ชัน ได้ ส่วนตัวแปรท่ีเป็นค่าคงท่ี หรือที่ถูกประกาศโดยฟังก์ชัน define() จะมีคุณสมบัติเป็นโกลบอล คือ สามารถเรียกใช้งานจากภายนอกหรือภายในฟังก์ชันได้ ซึ่งในภาษา PHP แบ่งประเภทของตัวแปร ออกเปน็ 2 ประเภทคอื (ชาญชัย ศุภอรรถกร, 2558: 73-74) 1 ตัวแปรโลคอล (Local Variable) เป็นตัวแปรท่ีมีขอบเขตการใช้งานอยู่ภายในฟังก์ชัน เท่านั้น ถ้ามีการประกาศตัวแปรชื่อเดียวกันไว้ทั้งภายในและภายนอกฟังก์ชัน ซ่ึงจะถือว่าเป็นตัวแปร คนละตวั กนั สามารถพจิ ารณาจากตัวอยา่ งท่ี 5.8 และ 5.9 ดังนี้ ตัวอยา่ งท่ี 5.8 การประกาศใชง้ านตัวแปรแบบโลคอลไว้ภายในฟังก์ชัน (TutorialRepublic, 2016) < ?php / / Defining function function test(){ $greet = \"Hello World!\"; echo $greet; } test(); / / Outputs: Hello World! echo $greet; / / Generate undefined variable error ?>

101 จากตัวอย่างข้างต้น โปรแกรมได้ประกาศฟังก์ชันชื่อ “test” และภายในฟังก์ชันได้ประกาศ ตวั แปรช่ือ “greet” มีค่าเปน็ “Hello World!” แลว้ แสดงขอ้ ความดังกล่าวออกทางหนา้ จอดว้ ยคาสั่ง echo ส้ินสุดการทางานของฟังก์ชัน ภายนอกฟังก์ชันมีการเรียกใช้งานฟังก์ชันโดยระบุช่ือฟังก์ชัน “test();” จากนั้นแสดงข้อความดังกล่าวออกทางหน้าจอด้วยคาส่ัง echo อีกครั้ง แต่พบข้อผิดพลาด ในการประมวลผล คือไม่พบการกาหนดค่าให้ตัวแปร “greet” หรือไม่สามารถเรียกใช้งานตัวแปร “greet” นอกฟังกช์ ันได้ เน่อื งจากได้ประกาศไวภ้ ายในฟังกช์ ัน ตัวอยา่ งท่ี 5.9 การประกาศใช้งานตวั แปรแบบโลคอลไว้ภายอนกฟงั ก์ชัน (TutorialRepublic, 2016) < ?php $greet = \"Hello World!\"; / / Defining function function test(){ echo $greet; } test(); / / Generate undefined variable error echo $greet; / / Outputs: Hello World! ?> จากตัวอย่างข้างต้น โปรแกรมได้ประกาศตัวแปรชื่อ “greet” และกาหนดให้เป็น “Hello World!” จากนั้นประกาศฟังก์ชันช่ือ “test” มีหน้าที่แสดงข้อความที่เป็นในตัวแปร “greet” ด้วย คาสั่ง echo จบการทางานของฟังก์ชัน เมื่อประกาศฟังก์ชันแล้วโปรแกรมทาการเรียกใช้งานฟังก์ชัน ด้วยการระบุชื่อฟังก์ชันเป็น “test()” แต่พบข้อผิดพลาดข้ึน เนื่องจากภายในฟังก์ชันนาตัวแปร “greet” ทีป่ ระกาศไว้ภายนอกฟงั กช์ ันไปใช้งาน จากน้นั แสดงข้อความท่ีเก็บในตวั แปร “greet” ออก ทางหนา้ จอด้วยคาสง่ั echo ซ่งึ สามารถประมวลผลไดเ้ นื่องจากเป็นตัวแปรท่ีประกาศไว้นอกฟังก์ชนั 2 ตัวแปรโกลบอล (Global Variable) เป็นตัวแปรประเภทที่สามารถเรียกใช้งานได้ทั้ง โปรแกรม หรือทั้งภายในและนอกฟังก์ชัน เม่ือภายในฟังก์ชันต้องการใช้ค่าของตัวแปรท่ีอยู่นอก ฟังก์ชัน นอกจากการส่งผ่านค่าแล้วยังสามารถใช้การประกาศตัวแปรแบบโกลบอลได้ โดยใช้คาส่ัง global วางไวห้ น้าชอ่ื ตวั แปรนน้ั สามารถพิจารณาจากตวั อย่างที่ 5.10 ดงั น้ี ตัวอย่างท่ี 5.10 การประกาศใชง้ านตวั แปรแบบโกลบอล (TutorialRepublic, 2016) < ?php $greet = \"Hello World!\"; / / Defining function function test(){ global $greet; echo $greet; } test(); / / Outpus: Hello World! echo $greet; / / Outpus: Hello World! / / Assign a new value to variable $greet = \"Goodbye\";

102 test(); / / Outputs: Goodbye echo $greet; / / Outputs: Goodbye ?> จากตัวอย่างข้างต้น โปรแกรมได้ประกาศตัวแปรช่ือ “greet” และกาหนดให้มีค่าเป็น “Hello World!” จากน้ันประกาศฟังก์ชันชื่อ “test” ภายในฟังก์ชันต้องการใช้งานตัวแปร “greet” ที่อยู่นอกฟังก์ชัน จึงต้องประกาศตัวแปรแบบโกลบอลด้วยใช้คาส่ัง “global” วางไว้หน้าตัวแปร “greet” จากนั้นแสดงข้อความที่เป็นในตัวแปร “greet” ด้วยคาสั่ง echo จบการทางานของฟังกช์ ัน โปรแกรมเรียกใช้งานฟังก์ชันที่ได้ประกาศไว้ด้วยการระบุชื่อฟังก์ชันเป็น “test()” ซ่ึงสามารถ ประมวลผลได้ สว่ นคาสงั่ “echo $greet” ก็สามารถประมวลได้เชน่ กัน นัน้ คือให้แสดงขอ้ ความท่ีเก็บ ในตัวแปร “greet” ออกทางหน้าจอ จากน้ันโปรแกรมมีการกาหนดค่าใหม่ให้กับตัวแปร “greet” เป็นค่า “Goodbye” เรียกใช้งานฟังก์ชันเหมือนเดิม โปรแกรมสามารถประมวลผลได้ โดยจะแสดง ขอ้ ความใหมท่ เ่ี กบ็ ในตวั แปร “greet” ออกทางหน้าจอตามลาดบั การนาเข้าสครปิ ตจ์ ากไฟลอ์ น่ื มาใชง้ าน ในภาษา PHP สามารถเขียนสคริปต์ไว้คนละไฟล์ เม่ือต้องการใช้งานไฟล์ไหนสามารถเรียก เข้ามาใช้งานในไฟล์หลักได้ ซึ่งการนาเข้าสคริปต์จากไฟล์อ่ืนเข้ามาใช้งานจะใช้คาสั่ง include มี รูปแบบดังน้ี (พรวนา รัตนชูโชค, 2557: 96-97) รปู แบบ include(“ชอื่ ไฟล”์ ); สาหรบั ตวั อยา่ งการนาไปใช้งานได้แสดงไวใ้ นตัวอย่างที่ 5.11 และ 5.12 ดังน้ี ตัวอยา่ งที่ 5.11 โปรแกรมสาหรับกาหนดค่าให้กับตวั แปร ตง้ั ชือ่ ไฟลเ์ ปน็ “vars.php” < ?php $color= “red” ; $car= “jeep cherokee”; ?> จากตัวอย่างข้างต้นเป็นการเขียนโปรแกรมประกาศตัวแปร 2 ตัวคือ “color” มีค่าเป็น “red” และตวั แปร “car” มีคา่ เป็น “jeep cherokee” ตัวอย่างท่ี 5.12 โปรแกรมใช้คาส่ังในการนาไฟล์ “vars.php” เข้ามาใช้ในโปรแกรมช่ือ test_include.php < html> นาตวั แปรไปใช้งานต่อ < body> < ?php include 'vars.php'; echo \"I have a $color $car\"; ?>

103 < / body> < /html> จากตัวอย่างข้างต้นโปรแกรมจะนาไฟล์ vars.php มาใช้งาน จากน้ันจะแสดงข้อความ “I have a rea jeep cherokee” ออกทางเว็บเบราว์เซอร์โดยเขียนเฉพาะสคริปต์ภาษา PHP แทรกไว้ ในภาษา HTML การเรียกใช้ฟงั กช์ นั ทม่ี อี ยูใ่ น PHP จากหัวข้อท่ีผ่านมาเราได้เรียนรู้การสร้างฟังก์ชันไว้ใช้งาน แต่เพื่อความสะดวกโปรแกรม ภาษา PHP ได้จัดเตรียมฟังก์ชันสาเร็จรูปไว้ให้ใช้งานอยู่หลายฟังก์ชัน จากบทท่ีผ่านมาจะพบฟังก์ชัน และการเรียนใช้งานอยู่หลายฟังก์ชัน เช่น echo(), print(), var_dump() และ define() เป็นต้น ดังน้ันจึงขอกล่าวเฉพาะฟังก์ชันท่ีจาเป็นและใช้งานบ่อยเพ่ิมเติมจากที่ได้เรียนรู้ไปบ้างแล้ว ดังนี้ (พรวนา รัตนชูโชค, 2557: 61-88) 1 ฟังก์ชัน isset() ใช้เพื่อตรวจสอบตัวแปรว่ามีการกาหนดค่าให้ตัวแปรหรือไม่ ฟังก์ชันนี้จะ ส่งผลการเรียกใช้งานเป็นจริงหรือเท็จ โดยถ้ามีการกาหนดค่าให้แล้วจะสง่ ผลลัพธเ์ ปน็ จริง กรณีอ่ืนจะ ส่งค่ากลับเป็นเท็จ มักใช้งานร่วมกับคาสั่งเงื่อนไข เช่น คาสั่ง if เป็นต้น มีรูปแบบและตัวอย่างการ เรียกใชง้ านดงั นี้ รปู แบบ isset($ตวั แปร) ตวั อย่างที่ 5.13 การเรียกใชง้ านฟงั กช์ นั isset() < ?php $greet = \"Hello World!\"; if ( isset ( $gr eet ) ) { echo $greet; } else { echo “The variable is not null”; } ?> จากตัวอยา่ งขา้ งตน้ แสดงการประกาศและกาหนดค่าให้ตัวแปร “greet” มีคา่ เป็น “Hello World!” แล้วใช้คาส่ัง if() ร่วมกับฟังก์ชัน isset() เพื่อตรวจสอบการกาหนดให้กับตัวแปร “greet” ถ้ากาหนดค่าแล้วเงื่อนไขจะเป็นจริงให้แสดงค่าตัวแปร “greet” ออกทางเว็บเบราว์เซอร์ ถ้ายังไม่ กาหนดค่าเงือ่ นไขจะเปน็ เท็จให้แสดงข้อความ “The variable is not null” ออกทางเวบ็ เบราวเ์ ซอร์ 2 ฟังก์ชัน unset() ใช้ยกเลกิ ค่าของตัวแปร หรอื ทาลายตวั แปรทีไ่ ม่ใช้งานแล้ว มีรูปแบบและ ตวั อยา่ งการเรยี กใชง้ านดังนี้ รปู แบบ unset($ตวั แปร)

104 ตวั อย่างท่ี 5.14 การเรยี กใชฟ้ งั กช์ นั unset() < ?php $greet = \"Hello World!\"; echo $greet; / / Outputs is Hello World! / / Calling Function unset ( $gr eet ) ; echo $greet; / / Outputs is Null ?> จากตัวอยา่ งขา้ งต้น แสดงการประกาศ กาหนดค่า และแสดงคา่ ตัวแปร “greet” มีค่าเป็น “Hello World!” จากนั้นเรียกใช้งานฟังก์ชัน unset() เพ่ือยกเลิกค่าตัวแปร เมื่อใช้คาส่ัง echo แสดงค่าตัวแปรอีกคร้ัง จึงแสดงคา่ นัลออกทางเวบ็ เบราวเ์ ซอร์ 3 ฟังก์ชัน gettype() ฟังก์ชันน้ีใช้ตรวจสอบหาชนิดของตัวแปรว่าเป็นชนิดใด เช่น ตัวเลข จานวนเต็ม ตัวเลขจุดทศนิยม หรือตวั อกั ษร เป็นตน้ มีรูปแบบและตวั อยา่ งการเรยี กใช้งานดงั น้ี รูปแบบ gettype($ตวั แปร) ตวั อยา่ งที่ 5.15 การเรียกใช้ฟงั กช์ ัน gettype() < ?php $var1 = \"Hello World!\"; $var2= 50; / / Calling Function echo $var1 . “ has ” . gettype($var1) . “ data type” ; echo “<br>”; echo $var2 . “ has ” . gettype($var2) . “ data type” ; ?> จากตัวอย่างข้างต้น แสดงการประกาศ และกาหนดค่าให้กับตัวแปร “var1” เป็น “Hello World!” และตัวแปร “var2” เป็น 50 จากน้ันเรียกใช้งานฟังก์ชัน gettype() เพ่ือตรวจสอบหาชนิด ของตวั แปร พรอ้ มแสดงค่าและชนิดของตวั แปรออกทางหน้าจอ 4 ฟังก์ชนั settype() เป็นฟงั ก์ชนั ทีใ่ ชเ้ ปล่ยี นชนดิ ข้อมลู ของตวั แปร ซึง่ ในบางครง้ั จาเป็นต้อง มีการเปลี่ยนชนิดข้อมูลเพื่อให้สามารถทางานได้ เช่น เปลี่ยนชนิดข้อมูลจากข้อความ เป็นตัวเลขเพ่ือ ใชใ้ นการคานวณ เปน็ ตน้ มีรูปแบบและตัวอยา่ งการเรยี กใชง้ านดงั น้ี รปู แบบ settype($ตวั แปร, “ชนดิ ของตวั แปรทต่ี อ้ งการเปลยี่ น”)

105 ตวั อย่างท่ี 5.16 การเรยี กใช้ฟังก์ชนั settype() < ?php $data = 42.3; echo $data; / / outputs is 42.3 echo “<br>”; / / Calling Function set t ype( $dat a, int eger ) ; echo $data; / / outputs is 42 ?> จากตัวอย่างข้างต้นแสดงการประกาศ และกาหนดค่าให้กับตัวแปร “data” เป็น 42.3 แสดงค่าตัวแปร (echo) และข้ึนบรรทัดใหม่ (<br>) จากน้ันเรียกใช้งานฟังก์ชัน settype() เพ่ือ เปล่ียนชนิดของตัวแปรจากตัวเลขจานวนทศนิยมเป็นตัวเลขจานวนเต็ม พร้อมแสดงค่าตัวแปร “data” ซึง่ จะมคี า่ เปลยี่ นไปเปน็ 42 5 ฟังก์ชัน date() เรียกใช้ฟังก์ชันนี้เพ่ือต้องการให้แสดงวันที่และเวลาปัจจุบันออกมาตาม รหัสรูปแบบท่ีกาหนด เช่น d m y เป็นต้น ซ่ึงรหัสรูปแบบการแสดงผลวันที่ และเวลาได้แสดงไว้ใน ตารางที่ 5.1 สว่ นรูปแบบและตวั อยา่ งการเรียกใช้งานดงั นี้ รูปแบบ date(รหสั รูปแบบการแสดงผล) ตารางที่ 5.1 รหสั รูปแบบการแสดงผลวันที่ และเวลา (php.net, 2016) รหัส รายละเอียด ตัวอย่างคา่ ที่ส่งกลับ วัน d วนั ทแ่ี บบเลข 2 หลกั 01 ถึง 31 D ชื่อวันภาษาอังกฤษแบบยอ่ Mon ถึง Sun j วันทีแ่ บบไม่มีเลข 0 นาหนา้ 1 ถงึ 31 l ช่อื วันภาษาองั กฤษแบบเต็ม Sunday ถึง Saturday เดือน F ช่อื เดือนภาษาองั กฤษแบบเต็ม January ถึง December m เดอื นแบบตวั เลข 2 หลกั 01 ถงึ 12

106 รายละเอยี ด ตวั อยา่ งคา่ ท่สี ่งกลบั รหสั ชอื่ เดอื นภาษาอังกฤษแบบย่อ Jan ถึง Dec เดือนแบบไม่มเี ลข 0 นาหน้า 1 ถึง 12 M จานวนวนั ของแต่ละเดอื น 28 ถึง 31 n t ปี ค.ศ. 4 หลัก เชน่ 1999 หรือ 2003 ปี ปี ค.ศ. 2 หลัก เช่น 99 หรอื 03 Y y แสดงคาว่า am หรอื pm ตวั พมิ พเ์ ล็ก am หรอื pm เวลา แสดงคาว่า AM หรือ PM ตัวพมิ พ์ใหญ่ AM หรือ PM a ชั่วโมงเป็นตัวเลขแบบไม่มีเลข 0 นาหน้า 1 ถงึ 12 A ชว่ั โมงเปน็ ตัวเลขแบบไม่มเี ลข 0 นาหนา้ 0 ถงึ 23 g ชั่วโมงเป็นตวั เลข 2 หลกั 00 ถึง 12 G ชว่ั โมงเปน็ ตัวเลข 2 หลกั 00 ถึ ง23 h นาทเี ป็นตัวเลข 2 หลัก 00 ถงึ 59 H วินาทีเปน็ ตวั เลข 2 หลกั 00 ถงึ 59 i s ตวั อยา่ งท่ี 5.17 การเรียกใช้ฟงั ก์ชัน date() < ?php echo date(\"Y-m-d H:i:s\"); / / Outputs is 2016-06-16 17:24:31 ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน date() เพ่ือแสดงวันที่ปัจจุบันตามรูปแบบท่ี กาหนด ผลลัพธจ์ ากการประมวลผลจะแสดงวนั ทีป่ ัจจบุ ัน เชน่ 2016-06-16 17:24:31

107 6 ฟังก์ชัน strtoupper() เป็นฟังก์ชันเปล่ึยนข้อความตัวอักษาภาษาอังกฤษจากตัวพิมพ์เล็ก เป็นพิมพ์ใหญ่ ซึง่ ตัวอกั ษาภาษาไทยไมส่ ามารถใชง้ านได้ มรี ปู แบบและตวั อย่างการเรียกใช้งานดงั นี้ รปู แบบ strtoupper(ขอ้ ความ) ตัวอยา่ งที่ 5.18 การเรียกใช้ฟังกช์ ัน strtoupper() < ?php $str = \"Mary Had A Little Lamb and She LOVED I t So\"; $str = strtoupper($str); echo $str; / / Prints “MARY HAD A LI TTLE LAMB AND SHE LOVED I T SO” ?> จากตัวอย่างข้างต้นแสดงการประกาศ และกาหนดค่าให้ตัวแปร “str” มีค่าเป็น “Mary Had A Little Lamb and She LOVED It So” จากนั้นเรียกใช้ฟังก์ฟัง strtoupper() เพ่ือ แปลงข้อความท่ีเก็บในตัวแปร “str” เป็นตัวพิมพ์ใหญ่ท้ังหมด เม่ือประมวลผลโปรแกรมจะแสดง ขอ้ ความ “MARY HAD A LITTLE LAMB AND SHE LOVED IT SO” ออกทางเว็บเบราว์เซอร์ 7 ฟังกชัน strtolower() เป็นฟังก์ชันเปลึ่ยนข้อความตัวอักษาภาษาอังกฤษจากตัวพิมพ์ใหญ่ เปน็ พมิ พ์เลก็ ซง่ึ ตวั อกั ษาภาษาไทยไมส่ ามารถใช้งานได้ มรี ูปแบบและตวั อย่างการเรียกใชง้ านดังนี้ รปู แบบ strtolower(ขอ้ ความ) ตัวอย่างท่ี 5.19 การเรยี กใช้ฟังก์ชัน strtolower() < ?php $str = \"Mary Had A Little Lamb and She LOVED I t So\"; $str = strtolower($str); echo $str; / / Prints “mary had a little lamb and she loved it so” ?> จากตัวอย่างข้างต้นแสดงการประกาศ และกาหนดค่าให้ตัวแปร “str” มีค่าเป็น “Mary Had A Little Lamb and She LOVED It So” จากนั้นเรียกใช้ฟังก์ฟัง strtolower() เพื่อ แปลงข้อความท่ีเก็บในตัวแปร “str” เป็นตัวพิมพ์เล็กท้ังหมด เมื่อประมวลผลโปรแกรมจะแสดง ข้อความ “mary had a little lamb and she loved it so” ออกทางเวบ็ เบราว์เซอร์

108 8 ฟังก์ชัน substr() ใช้สาหรับตัดคาในช่วงข้อความที่ต้องการ โดยระบุตาแหน่งแรกของ ขอ้ ความทต่ี อ้ งการตัดคา และจานวนตวั อักษรท่ตี ้องการตดั โดยภาษา PHP จะกาหนดตาแหน่งเร่มิ ต้น ของตวั อักษรตัวแรกของข้อความเปน็ ตาแหนง่ ที่ 0 มรี ูปแบบและตัวอย่างการเรยี กใชง้ านดังนี้ รูปแบบ substr(ขอ้ ความ,ตาแหน่งเรมิ่ ตน้ ของคาทตี่ อ้ งการ,จานวนตวั อักษรทตี่ อ้ งการ) ตัวอย่างที่ 5.20 การเรยี กใช้ฟงั ก์ชัน substr() ขอ้ ความทจ่ี ะตัดคา ตาแหน่งเรมิ่ ตน้ เป็น 1 คือเรม่ิ ที่ b ไม่ระบจุ านวน ตวั อกั ษรท่ตี อ้ งการจะหมายถงึ ใหต้ ดั คาถงึ ตาแหนง่ < ?php สุดทา้ ยของขอ้ ความ จะได้ bcdef echo substr('abcdef', 1); / / bcdef echo substr('abcdef', 1, 3); / / bcd ตาแหนง่ เรมิ่ ต้นเปน็ 0 คอื เร่มิ ที่ a ระบุ ตาแหน่งเรมิ่ ตน้ เปน็ 1 คอื เรมิ่ ที่ b ระบุจานวน จานวนตวั อกั ษรท่ีต้องการ 4 ตวั อักษร ตัวอกั ษรที่ต้องการ 3 ตวั อกั ษร จะได้ bcd จะได้ abcd echo substr('abcdef', 0, 4); / / abcd echo substr('abcdef', 0, 8); / / abcdef ตาแหน่งเริม่ ตน้ เป็น -1 จะเป็นการระบุ ตาแหน่งเรม่ิ ต้นเป็น 0 คอื เร่มิ ท่ี a ระบุจานวน จากขวามาซ้าย น้ันคอื เริ่มท่ี f ระบจุ านวน ตวั อักษรทีต่ ้องการ 8 ตวั อกั ษร จะได้ abcdef ตัวอักษรทต่ี อ้ งการ 1 ตวั อักษร จะได้ f echo substr('abcdef', -1, 1); / / f ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน substr() เพ่ือตัดคาที่ต้องการและแสดงผล ออกทางเวบ็ เบราว์เซอร์ 9 ฟงั ก์ชนั trim() ใช้ตัดช่องว่างที่อยู่ข้างหน้าและหลังของข้อความ แตไ่ ม่สามารถตัดช่องว่าง ระหว่างขอ้ ความได้ มีรูปแบบและตัวอยา่ งการเรยี กใช้งานดังนี้ รูปแบบ trim(ขอ้ ความหรอื ตวั แปร)

109 ตวั อย่างท่ี 5.21 การเรยี กใช้ฟังก์ชนั trim() < ?php $text = \"\\ t\\ tThese are a few words\\ t\\ t\\ t\"; var _dum p( $t ext ) ; echo \"< p> \"; \\t หมายถงึ ช่องว่าง 1 ชอ่ ง / / Calling Functions $trimmed = trim($text); var _dum p( $t r im m ed) ; ?> ผลลัพธ์ จากตัวอยา่ งขา้ งตน้ แสดงการประกาศและกาหนดคา่ ตัวแปร “text” มคี า่ เป็น “\\t\\tThese are a few words\\t\\t\\t” แล้วเรียกใช้ฟังก์ชัน var_dump ในการแสดงค่าและชนิดของข้อมลู ของตัว แปร “text” จากน้ันเรียกใช้ฟังก์ชัน trim() ตัวช่องว่างตัวแปร “text” แล้วนาไปเก็บไว้ในตัวแปร “trimmed” แล้วเรียกใช้ฟังก์ชัน var_dump ในการแสดงค่าและชนิดของข้อมูลของตัวแปร “trimmed” 10 ฟังก์ชัน explode() ใช้เพ่ือแยกข้อความออกเป็นส่วนๆ โดยจะต้องระบุสัญลักษณ์ท่ีใช้ แยกข้อความได้ เช่น ช่องว่าง (“ ”) หรือคอมม่า (,) เป็นต้น ส่วนผลลัพธ์ที่ได้จะเก็บไว้ในตัวแปรชนิด อารเ์ รย์ มีรปู แบบและตวั อยา่ งการเรยี กใชง้ านดงั นี้ รูปแบบ explode(“สญั ลกั ษณ์ทใ่ี ชแ้ ยกขอ้ ความ”,ขอ้ ความ) ตัวอย่างที่ 5.22 การเรียกใช้ฟังก์ชนั explode() < ?php $pizza = \"piece1 piece2 piece3\"; $pieces = explode(\" \", $pizza); echo $pieces[ 0] ; / / piece1 echo $pieces[ 1] ; / / piece2 แยกขอ้ ความดว้ ยช่องว่าง (“ ”) echo $pieces[ 2] ; / / piece3 ?> จากตัวอย่างข้างต้นแสดงการประกาศและกาหนดค่าให้ตัวแปร “pizza” มีค่าเป็น “piece1 piece2 piece3” จากนั้นเรียกใช้ฟักง์ชัน explode เพื่อแยกข้อความออกจากกันโดยใช้ ช่องว่าง ซึ่งผลลัพธ์ท่ีได้จะเก็บไว้ในตัวแปรอาร์เรย์ “pieces” แล้วให้แสดงค่าที่เก็บในตัวแปรอาร์เรย์ ออกทางเว็บเบราวเ์ ซอร์

110 11 ฟงั ก์ชัน strlen() ฟังกช์ ันนใ้ี ชห้ าความยาวของข้อความวา่ มกี ต่ี ัวอักษร มีรูปแบบและ ตวั อย่างการเรยี กใชง้ านดงั น้ี รปู แบบ strlen(ขอ้ ความ) ตัวอย่างที่ 5.23 การเรียกใช้ฟังก์ชัน strlen() < ?php $str = 'abcdef'; echo strlen($str); / / 6 ?> จากตัวอย่างข้างต้นแสดงการประกาศและกาหนดค่าให้ตัวแปร “str” มีค่าเป็น “abcdef” จากนัน้ เรยี กใชฟ้ ังก์ชนั strlen เพือ่ หาความยาวของตวั อกั ษรทเ่ี ก็บในตวั แปร “str” แล้วให้แสดงความ ยาวของตวั อกั ษรในตวั แปร “str” ออกทางเวบ็ เบราว์เซอร์ ค่าท่แี สดงจะเป็น “6” 12 ฟังก์ชัน str_replace() เป็นฟังก์ชันใช้สาหรับการแทนที่คา โดยกาหนดข้อความที่ ต้องการแทนท่ี และคาที่ต้องการใช้แสดงแทนท่ี เช่น การแทนที่คาท่ีไม่สุภาพด้วย “zzz” เป็นต้น มี รปู แบบและตวั อยา่ งการเรยี กใชง้ านดงั น้ี รูปแบบ str_replace(ขอ้ ความทต่ี อ้ งการแทนท,่ี คาทใี่ ชแ้ ทนท,่ี ขอ้ ความ) ตัวอยา่ งท่ี 5.24 การเรียกใช้ฟังกช์ ัน str_replace() < ?php echo str_replace(“ubon”, “udon”, “ubonthani”); ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน str_replace โดยกาหนด “ubon” เป็น ข้อความท่ตี ้องการแทนท่ี “udon” คาทใ่ี ช้แทนท่ี ส่วน “ubonthani” คอื ขอ้ ความที่จะไปแทนท่ี แล้ว แสดงผลลัพธท์ ีไ่ ดค้ อื “udonthani” ออกทางเว็บเบราว์เซอร์ 13 ฟังก์ชัน floor() สาหรับฟังก์ชันจะใช้ในการปัดเศษทศนิยมลงเสมอไม่สนใจหลักทาง คณติ ศาสตรใ์ นการปัดเศษจุดทศนยิ ม มรี ูปแบบและตวั อยา่ งการเรยี กใช้งานดงั นี้ รปู แบบ floor(ตวั เลขทศนยิ ม)

111 ตัวอยา่ งที่ 5.25 การเรียกใช้ฟงั กช์ ัน floor() < ?php echo floor(4.3); / / 4 echo floor(9.999); / / 9 echo floor(-3.14); / / -4 ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน floor ในการปัดเศษทศนิยมลงเสมอของ ตัวเลข 4.3 จะได้ 4 ตัวเลข 9.999 จะได้ 9 และตัวเลข -3.14 จะได้ -4 พร้อมแสดงค่าออกทางเว็บ เบราว์เซอร์ 14 ฟังก์ชัน ceil() สาหรับฟังก์ชันจะใช้ในการปัดเศษทศนิยมข้ึนเสมอไม่สนใจหลักทาง คณติ ศาสตร์ในการปัดเศษจุดทศนยิ ม มรี ปู แบบและตวั อยา่ งการเรียกใช้งานดังน้ี รูปแบบ ceil(ตวั เลขทศนยิ ม) ตัวอยา่ งท่ี 5.26 การเรียกใช้ฟงั กช์ ัน ceil() < ?php echo ceil(4.3); / / 5 echo ceil(9.999); / / 10 echo ceil(-3.14); / / -3 ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน ceil ในการปัดเศษทศนิยมขึ้นเสมอของ ตัวเลข 4.3 จะได้ 5 ตัวเลข 9.999 จะได้ 10 และตัวเลข -3.14 จะได้ -3 พร้อมแสดงค่าออกทางเวบ็ เบราว์เซอร์ 15 ฟังก์ชัน round() เป็นฟังก์ชันท่ีใช้สาหรับการปิดเศษจดุ ทศนิยมตามหลักคณิตศาสตร์ คือ หากมีค่ามากกว่าหรือเท่ากับ 0.5 จะปัดค่าข้ึน แต่ถ้ามีค่าน้อยกว่า 0.5 จะปัดลงหรือทิ้ง และสามารถ กาหนดจานวนหลักของตวั เลขทศนิยมได้ มีรปู แบบและตวั อย่างการเรยี กใช้งานดังนี้ รูปแบบ round(ตวั เลขทศนยิ ม,ตาแหน่งทศนยิ ม) ตัวอย่างท่ี 5.27 การเรยี กใช้ฟังก์ชัน round() < ?php echo round(3.49); // output is 3 ?>

112 จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน round เพื่อปัดเศษจุดทศนิยมตามหลัก คณติ ศาสตร์ของตวั เลข 3.49 จะได้ผลลัพธ์คอื 3 พร้อมแสดงคา่ ออกทางเวบ็ เบราว์เซอร์ 16 ฟังก์ชัน rand() เป็นฟังก์ชันสาหรับสุ่มตัวเลขที่ออกมาเป็นจานวนเต็ม โดยการเรียกใช้ ฟังก์ชันจะต้องส่งค่าเริ่มต้นหรือตัวเลขต่าสุดกับค่าส้ินสุดหรือตัวเลขสูงสุด ในการสุ่มไปให้ฟังก์ชัน ประมวลผลด้วย มีรูปแบบและตวั อยา่ งการเรยี กใช้งานดงั น้ี รปู แบบ rand(ตวั เลขตา่ สดุ ,ตัวเลขสงู สดุ ) ตวั อยา่ งที่ 5.28 การเรยี กใช้ฟังก์ชัน rand() < ?php echo rand(1,10); / / Outputs is number between 1 and 10 ?> จากตัวอย่างข้างต้นแสดงการเรียกใช้ฟังก์ชัน rand สุ่มแสดงตัวเลขท่ีอยู่ระหว่าง 1 ถึง 10 ออกทางหน้าเวบ็ เบราว์เซอร์ 17 ฟังก์ชัน sort() หน้าท่ีในการจัดเรียงลาดับข้อมูลในตัวแปรชนิดอาร์เรย์ มีรูปแบบและ ตวั อย่างเรียกใช้งานดังนี้ รูปแบบ sort($ตวั แปรอารเ์ รย)์ ตัวอย่างที่ 5.29 การเรียกใช้ฟังก์ชนั sort() < ?php $fruits = array(\"lemon\", \"orange\", \"banana\", \"apple\"); sor t ( $f r uit s) ; foreach ($fruits as $key = > $val) { echo \"fruits[ \" . $key . \"] = \" . $val . \"< br> \"; } ?> จากตัวอย่างข้างต้นแสดงการประกาศ และกาหนดตัวแปร “fruits” มีข้อมูลเป็นอาร์เรย์ จากนั้นเรียกใช้ฟังกช์ นั sort() เพือ่ เรียงลาดับข้อมูล แล้วใช้คาสัง่ foreach เพอ่ื วนรอบแสดงข้อมูลของ ตวั แปร “fruits” ที่มีเรียงลาดบั ออกทางหนา้ เวบ็ เบราวเ์ ซอร์

113 18 ฟังก์ชัน is_number() ใช้ตรวจสอบค่าในตัวแปรค่าเป็นตัวเลขหรือไม่ ฟังก์ชันนี้จะส่งค่า กลับเป็นจริงหรือเท็จ นั้นคือเป็นจริงเม่ือค่าของตัวแปรมีชนิดข้อมูลเป็นตัวเลข มีรูปแบบและตัวอย่าง เรียกใชง้ านดงั นี้ รปู แบบ is_number($ตวั แปรหรอื คา่ ขอ้ มลู ) ตัวอย่างท่ี 5.29 การเรียกใช้ฟังกช์ ัน is_number() < ?php if ( is_num er ic( \" gur u\" ) ) { echo \"true\"; } else { echo \"false\"; } ?> จากตัวอย่างข้างต้นแสดงการใช้คาสั่ง if() ร่วมกับฟังก์ชัน is_number() เพ่ือตรวจสอบค่า “guru” เป็นตัวเลขหรือไม่ ถ้าเงื่อนไขเป็นจริงจะแสดงข้อความ “true” และถ้าเป็นเท็จจะแสดง ข้อความ “false” ออกทางเว็บเบราว์เซอร์ ผลลัพธ์จากการประมวลผลโปรแกรมจะแสดงข้อความ “false” เนอื่ งจากไมใ่ ชต้ วั เลข ตวั อยา่ งที่ 5.30 การเรียกใช้ฟงั ก์ชนั is_number() < ?php if(is_numeric (123)) { echo \"true\"; } else { echo \"false\"; } ?> จากตัวอย่างข้างต้นแสดงการใช้คาส่ัง if() ร่วมกับฟังก์ชัน is_number() เพื่อตรวจสอบค่า 123 เป็นตัวเลขหรือไม่ ถ้าเง่ือนไขเป็นจรงิ จะแสดงข้อความ “true” และถ้าเป็นเท็จจะแสดงข้อความ “false” ออกทางเว็บเบราว์เซอร์ ผลลัพธ์จากการประมวลผลโปรแกรมจะแสดงข้อความ “true” เน่ืองจากเปน็ ตัวเลข

114 สรปุ ฟังก์ชันหมายถึงโปรแกรมย่อยที่เขียนข้ึนมาเพื่อทางานอย่างใดอย่างหน่ึงที่มีการทางาน บ่อยคร้ัง ในภาษา PHP มีฟังก์ชัน 2 ประเภทคือ ฟังก์ชันที่ผู้ใช้งานสร้างขึ้นมาเอง ซึ่งในการสร้าง ฟังก์ชันขึ้นมาใช้เอง และฟังก์ชันท่ีมีอยู่ในภาษา PHP อยู่แล้วสร้างขึ้นมาให้ใช้งานได้เลย เช่น echo, print, var_dump(), trim() และ date() เป็นต้น การสร้างฟังก์ชันสามารถทาได้โดยประกาศฟังก์ชัน และเรียกใช้งานฟังก์ชัน ซึ่งการเรียนใช้งานมี 2 วิธีคือ แบบ่ไม่มีการส่งผ่านค่า และแบบมีการส่งผ่าน ค่า ส่วนฟังก์ชันท่ีเรียกใช้งานจะมีการคืนค่าไปยังตาแหน่งท่ีเรียกใช้งาน หรือไม่มีการคืนค่าก็ได้ การ ส่งผ่านค่าให้แก่ฟังก์ชันมี 2 รูปแบบคือ การส่งผ่านด้วยค่าทจี่ ะส่งค่าผ่านตัวแปรที่เรียกว่าพารามิเตอร์ เข้าไปในฟังก์ชัน ส่วนภายในฟังก์ชันจะมีตัวแปรท่ีเรียกว่า อาร์กิวเมนท์ รอรับค่าท่ีส่งมาตอนเรียกใช้ งานฟังก์ชัน อีกรูปแบบคือ การส่งผ่านด้วยการอ้างอิงที่จะส่งค่าผ่านตัวแปรเข้าไปในฟังก์ชัน หาก ภายในฟังก์ชันมีการเปล่ียนแปลงค่าตัวแปรน้ัน จะทาให้ค่าตัวแปรที่อยู่นอกฟังก์ชันเปล่ียนไปด้วย ขอบเขตการเรียกใช้ตวั แปรมีท้งั ที่เป็นตัวแปรโลคอลท่ีมีขอบเขตการเรียกใชอ้ ยู่ภายในฟังก์ชนั และตัว แปรโกลบอลมขี อบเขตการเรยี กใชเ้ ป็นท้ังโปรแกรม

115 แบบฝกึ หดั 1. จงบอกความหมายของฟังก์ชนั พร้อมยกตวั อยา่ งประกอบ 2. ประเภทของการส่งผา่ นคา่ ให้แกฟังก์ชนั มีกี่ประเภท จงอธิบาย 3. ขอบเขตการเรียกใช้ตวั แปรของฟังก์ชันคืออะไร จงอธิบาย 4. จงเขยี นฟังก์ชันเพ่ือหาพืน้ ทีส่ ่ีเหลีย่ ม พรอ้ มกับเรียกใช้งานฟังก์ชันดังกลา่ ว การแสดงผลลัพธ์ ทีไ่ ดใ้ ห้กาหนดตามความเหมาะสม (2101_sq.php) พื้นที่ = กว้าง x ยาว 5. จงเขยี นฟังก์ชนั เพ่ือหาพนื้ ที่สามเหลย่ี ม พร้อมกับเรียกใช้งานฟงั กช์ นั ดังกล่าว การแสดง ผลลพั ธท์ ี่ไดใ้ ห้กาหนดตามความเหมาะสม (2101_rec.php) พ้นื ที่ = 0.5 x ฐาน x สงู 6. จงสรา้ งเมนเู พ่ือเรียกใชโ้ ปรแกรมท่สี ร้างทั้งหมดในชั้นเรียน โดยนาหลักการทางานของ PHP Include File มาใช้ (ช่ือไฟล์เปน็ รหัสนศ.php และ menu.php) เชน่ 4.1 ไฟล์ 2101.php มีรายละเอียดท่ตี ้องแสดง (ปรบั แต่งให้สวยงานและเหมาะสม) ดังน้ี ผลงานการพัฒนาโปรแกรม วิชา...................... ประจาปกี ารศกึ ษา 2/2559 รหัสนักศึกษา ชอื่ -นามสกุล 4.2 ไฟล์ menu.php เพือ่ ทาการเชอื่ มโยงไปยังไฟลก์ ่อนหน้ามรี ายละเอียดท่ตี ้องแสดงดังนี้ โปรแกรมคานวณหาพื้นท่ี 4 เหลี่ยม โปรแกรมคานวณหาพื้นที่ 3 เหลยี่ ม

116 เอกสารอา้ งองิ ชาญชยั ศภุ อรรถกร. (2558). สรา้ งเวบ็ แอพพรเิ คชัน PHP MySQL+AJAX jQuery ฉบบั สมบูรณ์. กรุงเทพฯ: รไี ววา่ . พรวนา รตั นชโู ชค. (2557). การโปรแกรมบนเวิลด์ไวดเ์ ว็บ. [ม.ป.ท.]. สมศกั ดิ์ โชคชยั ชตุ กิ ุล. (2550). Insight PHP ฉบับสมบรู ณ์. กรุงเทพฯ: โปรวิชัน่ Guru99. (2016). PHP Function: Numeric, Built in, String, Date, User Defined. 2016, May 10. [online], Available HTTP: https://www.guru99.com/functions-in- php.html Php. (2016). Function Reference. 2016, September 20. [online], Available HTTP: http://php.net/manual/en/function.explode.php Tutorial Republic. (2016). PHP Functions. 2016, September 20. [online], Available HTTP: https://www.tutorialrepublic.com/php-tutorial/php-functions.php Tutorialspoint. (2016). PHP – Functions. 2016, September 25. [online], Available HTTP: https://www.tutorialspoint.com/php/php_functions.htm

แผนบรหิ ารการสอนประจาบทที่ 6 เนื้อหาประจาบทท่ี 6 การจัดการไฟล์และไดเรคทอรดี ้วยภาษา PHP ไฟลข์ ้อมูล การเปดิ และปิดไฟล์ การอ่านข้อมลู จากไฟล์ การเขียนข้อมลู ลงไฟล์ การจัดการไฟล์ การเปลย่ี นชอื่ ไฟล์ การยา้ ยไฟล์ การลบไฟล์ การทาสาเนาไฟล์ การอพั โหลดไฟล์ ไดเรกทอรี การเปดิ และปิดไดเรกทอรี การอ่านรายชื่อไฟล์และไดเรกทอรีย่อยในไดเรกทอรี การสรา้ งไดเรกทอรี การลบไดเรกทอรี การเปล่ียนชื่อไดเรกทอรี วัตถุประสงคเ์ ชงิ พฤตกิ รรม เม่อื ศึกษาบทเรียนนแี้ ล้ว ผู้เรยี นมพี ฤติกรรมดังนี้ 1. อธบิ ายเกี่ยวกบั ไฟลข์ ้อมูล ไดเรกทอรี 2. สามารถเขียนโปรแกรมจดั การไดเร็คทอรี และไฟล์ขอ้ มลู ตามแบบฝึกหัดประจาบทได้อย่าง เหมาะสม วธิ สี อนและกจิ กรรมการเรียนการสอน 1. วิธสี อน 1.1 บรรยาย และสาธติ 1.2 อภปิ ราย คน้ คว้าเพิ่มเติม 1.3 นักศกึ ษาทาแบบฝกึ หดั และผู้สอนตรวจแบบฝกึ หดั 1.4 มอบหมายแบบฝึกหดั เป็นการบ้านเพ่ือทบทวนบทเรยี น

118 2. กจิ กรรมการเรียนการสอน สัปดาห์ 12 (4 ชว่ั โมง) 2.1 ผ้สู อนอธิบายและสาธติ เน้ือหา เปิดโอกาสให้ผ้เู รียนซักถามปญั หาในหัวข้อทย่ี งั ไม่เข้าใจ ใหผ้ เู้ รยี นคน้ ควา้ เพิ่มเตมิ จากอินเตอร์เนต็ และเอกสารประกอบการสอน อภปิ ราย และสรุป เน้อื หาสาระสาคญั รว่ มกัน 2.2 ผู้เรียนทาแบบฝึกหดั ประจาบทและตอบคาถามลงใน Google Classroom เพ่อื ให้ผูส้ อนตรวจ อธบิ ายและชี้แจงคาตอบที่ถกู ต้อง สื่อการเรยี นการสอน 1. เอกสารประกอบการสอนการเขียนโปรแกรมคอมพิวเตอรเ์ พ่อื งานสารสนเทศ 1 2. เครอื่ งคอมพิวเตอร์ 3. PowerPoint เนื้อหาบทที่ 6 4. สือ่ ออนไลน์ชว่ ยสอน : โปรแกรม Google Classroom การวัดผลและประเมนิ ผล 1. การวัดผล สงั เกตจากการตอบคาถาม ตรวจแบบฝกึ หดั 2. การประเมนิ ผล ผู้เรยี นสามารถตอบคาถามและทาแบบฝึกหดั ได้ถกู ตอ้ ง ร้อยละ 80

บทที่ 6 การจดั การไฟล์และไดเรคทอรดี ว้ ยภาษา PHP การจัดเก็บข้อมูลของระบบคอมพิวเตอร์จะอยู่ในรูปไฟล์ข้อมูลในหน่วยความจา แต่ละ หน่วยความจาจะมีค่าประจาตาแหน่งท่ีเรียกว่า แอดเดรส (address) หรือหมายเลขอ้างอิง ซ่ึงถือว่า เป็นข้อมูลประเภทหน่ึง ระบบคอมพิวเตอร์จะเก็บแอดเดรสไว้ในตวั แปรชนิดพอยน์เตอร์ (pointer) ที่ ช้ีไปยังตาแหน่งที่เก็บข้อมูลจริงในหน่วยความจาและยังสามารถเปลี่ยนแปลงตาแหน่งชี้ข้อมูลได้ รวดเร็วด้วย ส่วนแหล่งท่ีเก็บหลายๆ ไฟล์ข้อมูลไว้ด้วยกันจะเรียกว่า ไดเรกทอรีหรือโฟล์เดอร์ ซ่ึงจะ เป็นการจัดกลุ่มไฟล์งานให้สะดวกต่อการค้นหา สาหรับการจัดการกับไดเรกทอรีและไฟล์ข้อมูลด้วย ภาษา PHP นั้นมีความยืดหยุ่นสูง มีฟังก์ชันในการจัดการไฟล์ให้ใช้งานจานวนมาก ซ่ึงในบางคร้ังการ เขียนโปรแกรมบางงานอาจไม่ต้องการจัดเก็บข้อมูลลงในฐานข้อมูล จัดเก็บไว้ในไฟล์ข้อมูลก็ได้ เช่น งานที่ต้องเก็บรายละเอียดการเข้าใช้งานเคร่ืองเซิร์ฟเวอร์ลงในไฟล์เพื่อตรวจสอบว่ามีใครเข้าใช้งาน บ้าง และเข้ามากระทาอะไรในเคร่ืองเซิร์ฟเวอร์ เป็นต้น เนื้อหาที่จะกล่าวในบทนี้ประกอบด้วยการ เปิด การปิด อ่านและเขียนข้อมูลในไฟล์ และจัดการไฟล์ ส่วนการจัดการกับไดเรกทอรีมีการกระทา ดังน้ี การเปิด การปิด การอ่านรายช่ือไฟล์และไดเรกทอรีย่อยในไดเรกทอรีหลัก การสร้าง การลบ และการเปลยี่ นช่ือไดเรกทอรี ไฟลข์ ้อมลู ไฟล์คอมพิวเตอร์เป็นแหล่งจัดเก็บข้อมูลในหน่วยความจาถาวรของระบบคอมพิวเตอร์ ตัวอย่างหน่วยความจาถาวร เช่น ฮาร์ดดิกส์ แผ่น DVD หรือ ไดรฟ์ประเภท USB เป็นต้น ไฟล์ คอมพิวเตอรแ์ บ่งออกเป็น 2 ชนิดดังนี้ (สมศกั ดิ์ โชคชัยชตุ ิกุล, 2550: 137-154; ชาญชยั ศภุ อรรถกร, 2558: 93-99; Joyce Farrell, 2013: 258-259; W. Jason Gilmore, 2010: 229-250) 1. เท็กซไ์ ฟล์ (Text files) เปน็ ไฟล์ทเ่ี ก็บข้อมูลอักขระ รปู ภาพ หรอื ตารางท่ีข้อมูลมี รูปแบบเป็นรหัส ASCII สามารถอ่าน สั่งพิมพ์ แสดงออกทางหน้าจอ และแก้ไขด้วยโปรแกรมสาหรับ จดั การเอกสารทัว่ ไป เชน่ โปรแกรม Notepad หรอื MS Word เปน็ ตน้ 2. ไบนารีไฟล์ (Binary files) ไฟล์ประเภทนี้เครื่องคอมพิวเตอร์เท่าน้ันท่ีสามารถ อา่ นได้ โดยสรา้ งและประมวลผลข้นึ ตามลักษณะเฉพาะของแตล่ ะระบบงาน สาหรบั ฟงั ก์ชันทีใ่ ชจ้ ดั การไฟล์ในภาษา PHP มีรายละเอียดดังตารางท่ี 6.1 สว่ นรายละเอียด การนาไปใชจ้ ะกล่าวในหัวขอ้ ถัดไป

120 ตารางที่ 6.1 ฟังกช์ ันในภาษา PHP สาหรับจดั การไฟล์ ฟงั ก์ชนั หนา้ ที่ fopen() เปดิ ไฟล์ fclose() ปดิ ไฟล์ fgets() อ่านข้อมลู จากไฟลท์ ี่ละ 1 บรรทดั fgetc() อา่ นข้อมูลจากไฟลท์ ล่ี ะตวั อักษร fread() อ่านข้อมลู จากไฟลท์ ่ีสามารถระบจุ านวนความยาวหรือไบต์ทต่ี อ้ งการได้ fputs() เขียนข้อมลู ลงสู่ไฟล์ โดยสามารถกาหนดจานวนตวั อักษรที่ตอ้ งการเขยี นได้ fwrite() เขยี นขอ้ มลู ลงสู่ไฟล์ 1 การเปิดและปิดไฟล์ ก่อนจะดาเนินการใดๆ กับไฟล์จะต้องเปิดไฟล์ก่อนทุกคร้ัง และหลักจากเปิดไฟล์และ ดาเนินการกับไฟล์เรียบร้อยแล้วทุกคร้ังจะต้องปิดไฟล์ก่อนจบโปรแกรม การเปิดไฟล์เป็นการระบุชื่อ และพาธของไฟล์ที่ต้องการเปิด พร้อมบอกวัตถุประสงค์ท่ีเปิดไฟล์ด้วย ซ่ึงรายละเอียดเกี่ยวกับ วัตถุประสงค์หรือวิธีการเปิดไฟล์ (Mode) ได้แสดงไว้ในตารางท่ี 6.2 ส่วนฟังก์ชันสาหรับการเปิดไฟล์ คือ fopen() มรี ูปแบบการใชง้ านดงั นี้ รูปแบบ fopen(พาธและชอ่ื ไฟล,์ วธิ กี ารเปิดไฟล)์ ตารางที่ 6.2 วธิ กี ารเปดิ ไฟลใ์ นภาษา PHP วธิ กี ารเปดิ ไฟล์ (Mode) รายละเอียด r เปิดไฟล์ทีม่ อี ยู่แล้ว เพ่ืออา่ นอยา่ งเดยี ว ตัวชีจ้ ะเร่ิมที่ตาแหน่ง เริ่มตน้ ของไฟล์ r+ เปิดไฟล์ทม่ี อี ยู่แลว้ เพ่ืออ่านและเขยี นข้อมูลในไฟล์ ตัวช้ีจะเรม่ิ ท่ีตาแหน่งเริม่ ต้นของไฟล์ w เปิดไฟล์ทม่ี อี ยู่แล้ว เพื่อเขียนทับขอ้ มลู เดิมของไฟล์น้นั ตวั ช้ีจะ เริม่ ท่ตี าแหนง่ เริ่มตน้ ของไฟล์ กรณที ี่ไม่มีไฟล์นั้นอย่ใู นเคร่อื ง คอมพิวเตอร์ ระบบจะสรา้ งไฟล์ข้นึ มาใหม่

121 วธิ ีการเปิดไฟล์ (Mode) รายละเอียด w+ เปดิ ไฟล์ทม่ี อี ยู่แล้ว เพอ่ื อ่านและเขียนทับขอ้ มลู เดิมของไฟล์น้ัน ตวั ชี้จะเรม่ิ ท่ตี าแหน่งเริ่มต้นของไฟล์ กรณีท่ไี มม่ ไี ฟล์นน้ั อยู่ใน เครอ่ื งคอมพิวเตอร์ ระบบจะสรา้ งไฟล์ขน้ึ มาใหม่ a เปดิ ไฟล์ทีม่ ีอยู่แลว้ เพอ่ื เขยี นข้อมูลต่อท้ายไฟลน์ ัน้ ตัวชีจ้ ะเร่ิม ทต่ี าแหน่งสน้ิ สดุ ของไฟล์ กรณที ี่ไม่มีไฟล์นั้นอยู่ในเคร่ือง คอมพิวเตอร์ ระบบจะสรา้ งไฟลข์ น้ึ มาใหม่ a+ เปิดไฟล์ทม่ี ีอยู่แลว้ เพื่ออา่ นและเขยี นข้อมลู ต่อทา้ ยไฟล์นัน้ ตัว ชี้จะเรม่ิ ที่ตาแหน่งสนิ้ สดุ ของไฟล์ กรณที ี่ไม่มไี ฟล์นัน้ อยู่ใน เคร่ืองคอมพิวเตอร์ ระบบจะสรา้ งไฟลข์ นึ้ มาใหม่ เมอื่ ใช้งานไฟล์เรยี บรอ้ ยก่อนจบโปรแกรมให้ปิดไฟลท์ ุกคร้งั ด้วยฟังกช์ นั fclose() มีรปู แบบ การใช้งานดงั นี้ รปู แบบ fclose(หมายเลขอา้ งองิ ไฟล)์ ตวั อย่างที่ 6.1 การใช้งานฟงั กช์ นั fopen() และ fclose() ชอื่ ไฟลท์ ตี่ ้องการเปดิ < ?php วัตถปุ ระสงคท์ ี่เปดิ $fh = fopen(“my_settings.txt”, “w”); f close( $f h) ; ?> ตัวแปรพอยนเ์ ตอร์ จากชุดคาสั่งข้างต้นเป็นการเปิดไฟล์ชื่อ “my_settings.txt” เพื่อเขียนข้อมูลทับลงไปใน ไฟล์ดังกล่าว ฟังก์ชัน fopen() จะส่งค่ากลับมาแล้วนาไปเก็บไว้ในตัวแปร fh ซ่ึงเป็นหมายเลขอ้างอิง หรือตาแหน่งที่เก็บไฟล์ในหน่วยความจา เม่ือเปิดไฟล์แล้วทุกครั้งก่อนจบโปรแกรมให้ปิดไฟล์ด้วย ฟงั กช์ นั fclose() ตามหมายเลขอา้ งองิ ทเ่ี กบ็ ในตัวแปร fh

122 ตวั อย่างท่ี 6.2 การใช้งานฟังก์ชนั fopen() และ fclose() ท่มี กี ารตรวจสอบไฟลก์ อ่ นวา่ มีอยู่หรอื ไม่ (Tutorial Republic, 2016) < ?php ฟงั กช์ ัน file_exists() ตรวจสอบ $file = \"data.txt\"; ว่าไฟล์มีอยหู่ รือไม่ / / Check the existence of file if ( f ile_exist s( $f ile) ) { / / Open the file for reading $handle = fopen($file, \"r\") or die(\"ERROR: Cannot open the file.\"); / * Some code to be executed * / / / Closing the file handle fclose($handle); } else{ echo \"ERROR: File does not exist.\"; } ?> จากชุดคาส่ังตัวอย่างที่ 6.2 ต้องการเปิดไฟล์ชื่อ “data.txt” ซ่ึงเก็บชื่อไฟล์ไว้ในตัวแปร file ก่อนเปิดไฟล์จะตรวจสอบว่าไฟล์ดังกล่าวมีอยู่จริงหรือไม่ในระบบคอมพิวเตอร์ด้วยฟังก์ชัน file_exists() ถ้ามีอยู่จริงให้เปิดไฟล์เพื่ออ่านอย่างเดียว สาหรับฟังก์ชัน fopen() จะส่งหมายเลข อา้ งองิ ไฟล์กลบั มาให้โปรแกรมแล้วนาคา่ นั้นไปเก็บไว้ในตัวแปร handle หรอื ถา้ เปิดไฟลไ์ ม่ได้จะแสดง ข้อความ “ERROR: Cannot open the file.” แล้วออกจากโปรแกรม หลังจากเปิดไฟล์แลว้ นักเขยี น โปรแกรมสามารถเขยี นชุดคาสัง่ ให้ดาเนินการกับไฟล์ตามต้องการไดก้ ่อนปิดไฟลด์ ว้ ยฟังกช์ ัน fclose() ส่วนกรณีทไ่ี ม่มีไฟลน์ ้ันอยใู่ นระบบให้แสดงข้อความว่า “ERROR: File does not exist.” 2 การอ่านข้อมูลจากไฟล์ ในภาษา PHP ได้เตรียมฟังก์ชันสาหรับอ่านข้อมูลจากไฟล์หลายฟังก์ชัน เช่น fread(), fgetc() และ fgets() เปน็ ต้น ดงั มรี ูปแบบและการนาไปใชง้ านดังนี้ 2.1 ฟงั ก์ชนั fread() เหมาะสาหรับอ่านข้อมูลจากไบนารไี ฟล์ สามารถกาหนดจานวนความ ยาวหรือจานวนไบต์ท่ีต้องการอ่านได้ จะหยุดอ่านเม่ือพบจุดสิ้นสุดของไฟล์ (End Of File: EOF) มี รปู แบบและการนาไปใช้งานของฟงั กช์ ันดงั น้ี รปู แบบ fread(หมายเลขอา้ งองิ ไฟล,์ จานวนไบตท์ ใี่ หอ้ า่ น)

123 ตัวอย่างที่ 6.3 การใช้งานฟังก์ชัน fread() อ่านข้อมูลจากไฟล์ data.txt โดยอ่านข้อมูลอย่างเดียว (Tutorial Republic, 2016) < ?php $file = \"data.txt\"; / / Check the existence of file if ( f ile_exist s( $f ile) ) { / / Open the file for reading $handle = fopen($file, \"r\") or die(\"ERROR: Cannot open the file.\"); / / Reading the entire file $content = fread($handle, filesize($file)); / / Closing the file handle fclose($handle); หรอื ระบเุ ป็นตัวเลข เชน่ 50 กไ็ ด้ / / Display the file content echo $content; } else{ echo \"ERROR: File does not exist.\"; } ?> จากชุดคาสั่งตัวอย่างท่ี 6.3 มีการใช้งานหลายฟังก์ชันดังนี้ file_exists() ใช้สาหรับ ตรวจสอบว่าไฟล์ “data.txt” ท่ีเก็บชื่อไฟล์ไว้ในตัวแปร file มีอยู่หรือไม่ ถ้ามีจะใช้ฟังก์ชัน fopen() เปิดไฟล์น้ันแบบอ่านอย่างเดียว (mode= “r”) ฟังก์ชัน fread() จะอ่านข้อมูลจากไฟล์ตามหมายเลข อ้างอิงท่ีเก็บไว้ในตัวแปร handle โดยขนาดข้อมูลท่ีอ่านจะเท่ากับค่าท่ีได้รับจากการใช้ฟังก์ชัน filesize() ซง่ึ เป็นฟงั กช์ ันตรวจสอบขนาดของไฟล์ทมี่ หี น่วยเป็นไบต์ จากนนั้ นาขอ้ มูลที่อ่านได้ไปเก็บไว้ ในตัวแปร content แล้วทาการปิดไฟล์ด้วยฟังก์ชัน fclose() ต่อด้วยนาค่าในตัวแปร content มา แสดงออกทางหน้าจอด้วยคาสั่ง echo หลังคาส่ัง else เป็นกรณีท่ีไม่พบไฟล์ “data.txt” โปรแกรม จะแสดงข้อความ “ERROR: File does not exits.” ออกทางหน้าจอแทน 2.2 ฟังก์ชัน fgetc() จะอ่านข้อมูลทีละตัวอักษร หากพบจุดสิ้นสุดของไฟล์ (EOF) คืนค่า เป็น false และสิ้นสุดการทางาน มีรปู แบบและตัวอยา่ งการใชง้ านฟงั ก์ชนั ดังนี้ รปู แบบ fgetc(หมายเลขอา้ งองิ ไฟล)์

124 ตัวอย่างท่ี 6.4 การใช้งานฟังก์ชัน fgetc() สาหรับอ่านข้อมูลจากไฟล์ fgetc.txt ท่ีเก็บอยู่ในโฟล์เดอร์ phpbook ในไดร์ฟ c ซ่ึงเปิดอา่ นขอ้ มูลอยา่ งเดยี ว < ?php / / file name is fgetc.php $file=fopen(“c:/phpbook/fgetc.txt”, “r”); if($file= = NULL) { print “ไมส่ ามารถเปิดไฟลไ์ ด”้ ; } else { print “ทดสอบการอา่ นไฟลด์ ว้ ยฟังกช์ นั fgetc <hr>”; while (feof($file)= = false){ $ch = fgetc($file); print $ch; } } f close( $f ile) ; ?> จากชุดคาสั่งตัวอย่างที่ 6.4 ทาการเปิดไฟล์ “fgetc.txt” แบบอ่านอย่างเดียวด้วยฟังก์ชัน fopen() ซึ่งฟังก์ชันน้ีจะคืนค่าหมายเลขอ้างอิงไฟล์ จากน้ันนาค่าดังกล่าวไปเก็บไว้ในตัวแปร file จากน้ันตรวจสอบว่า ค่าท่ีเก็บในตัวแปร file เป็นค่านัลหรือไม่ ถ้าเป็นจริงหรือเป็นค่านัลให้แสดง (print) ข้อความ “ไม่สามารถเปิดไฟล์ได้” แล้วไปทาการปิดไฟล์ด้วยฟังก์ชัน fclose() และจบการ ทางานของโปรแกรม แต่ถ้าเป็นเท็จหรือค่าไม่เป็นนัลให้แสดงข้อความ “ทดสอบการอ่านไฟล์ดัง ฟังก์ชัน fgetc” จากน้ันวนรอบ (while) อ่านข้อมูลจากไฟล์ด้วยฟังก์ชัน fgetc() แล้วนาค่าไปเก็บไว้ ในตัวแปร ch พร้อมแสดงค่าน้ันด้วยจนกว่าจะสิ้นสุดไฟล์ ซ่ึงได้นาฟังก์ชัน feof() มาตรวจสอบ จุดสิ้นสุดของไฟล์ โดยฟังก์ชัน feof() จะคืนค่าเป็น true เม่ือพบจุดส้ินสุดไฟล์ แล้วโปรแกรมจะออก จากการวนรอบอา่ นไฟล์ กอ่ นจบโปรแกรมปดิ ไฟล์ด้วยฟังก์ชนั fclose() 2.3 ฟังกช์ นั fgets() ฟังกช์ ันน้ีจะอ่านข้อมูลทีละ 1 บรรทดั นบั จากหมายเลขอ้างอิงปัจจุปัน และไมเ่ กนิ จานวนไบต์ท่ีกาหนด รปู แบบการใชง้ านฟงั ก์ชนั มดี งั น้ี รูปแบบ fgets(หมายเลขอา้ งองิ ไฟล,์ จานวนไบตท์ ตี่ อ้ งการ)

125 ตวั อย่างท่ี 6.5 การใชฟ้ งั กช์ ัน fgets() อ่านไฟล์ users.txt อยา่ งเดียว < ?php / / Open a handle to users.txt $fh = fopen('/ home/ www/ data/ users.txt', 'r'); / / While the EOF isn't reached, read in another line and output it while (!feof($fh)) echo fgets($fh); / / Close the handle fclose($fh); ?> จากชุดคาสั่งตัวอย่างท่ี 6.5 ทาการเปิดไฟล์ “users.txt” ที่เก็บในโฟล์ เดอร์ “/home/www/data/” แบบอ่านอย่างเดียวด้วยฟังก์ชัน fopen() ซึ่งฟังก์ชันน้ีจะคืนค่าหมายเลข อ้างอิงไฟล์ แล้วนาค่าดังกล่าวไปเก็บไว้ในตัวแปร fh จากนั้นใช้คาสั่ง while วนรอบอ่านข้อมูลจาก ไฟล์ด้วยฟังก์ชัน fgets() และแสดงค่าที่อ่านด้วยคาสั่ง echo จนกว่าจะพบจุดสิ้นสุดของไฟล์โดยใช้ ฟงั กช์ ัน feof() ตรวจสอบวา่ หาจุดสน้ิ สุดไฟล์ ถ้าพบจดุ สนิ้ สุดไฟล์ใหห้ ยุดอ่านไฟล์ แต่กอ่ นจบโปรแกรม ให้ปดิ ไฟล์ตามหมายเลขไฟลท์ ีเ่ กบ็ ในตัวแปร fh ด้วยฟงั กช์ ัน fclose() 3 การเขียนข้อมูลลงไฟล์ สาหรับฟังก์ชันในการเขียนข้อมูลลงไฟล์ในภาษา PHP สามารถใช้ฟังก์ชัน fwrite() และ fputs() ดงั มรี ายละเอยี ดการใช้งานดังน้ี 3.1 ฟังก์ชัน fwrite() เป็นฟังก์ชันท่ีเหมาะสาหรับเขียนข้อมูลลงไบนารีไฟล์ มีรูปแบบและ ตัวอยา่ งการใช้งานของฟังก์ชันดงั นี้ รูปแบบ fwrite(หมายเลขอา้ งองิ ไฟล,์ ขอ้ มลู ทจ่ี ะเขยี นลงไฟล[์ ,จานวนไบตท์ ใี่ หเ้ ขยี น] )

126 ตัวอยา่ งท่ี 6.6 การใช้งานฟงั กช์ ัน fwrite() เขียนขอ้ มลู ลงไฟล์ note.txt สามารถเขยี นเปน็ คาส่ังภาษา PHP ดังน้ี (Tutorial Republic, 2016) < ?php $file = \"note.txt\"; / / String of data to be written $data = \"The quick brown fox jumps over the lazy dog.\"; / / Open the file for writing $handle = fopen($file, \"w\") or die(\"ERROR: Cannot open the file.\"); / / Write data to the file fwrite($handle, $data) or die (\"ERROR: Cannot write the file.\"); / / Closing the file handle fclose($handle); echo \"Data written to the file successfully.\"; ?> จากชุดคาส่ังตัวอย่างท่ี 6.6 กาหนดให้ตัวแปร file เก็บช่ือไฟล์ “note.txt” จากนั้น กาหนดให้ตัวแปร data เก็บค่า “The quick brown fox jumps over the lazy dog.” แล้วเปิด ไฟลด์ ้วยฟงั ก์ชัน fopen() เพอื่ เขยี นข้อมูลลงไฟล์ (mode= “w”) นาหมายเลขอ้างองิ ท่ีไดจ้ ากฟังก์ชัน เปิดไฟล์ไปเก็บไว้ในตัวแปร handle หรือถ้าไม่สามารถเปิดไฟล์ดังกล่าวได้อาจเกิดเนื่องจากไม่มีไฟล์ อยู่จริงให้แสดงข้อความ “ERROR: Cannot open the file.” แล้วออกจากโปรแกรม กรณีท่ีไม่เกิด ข้อผิดพลาดใดๆ ให้กระทาการเขียนข้อมูลจากตัวแปร data ลงไปในไฟล์ตามหมายเลขอ้างอิงในตัว แปร handle ด้วยฟังก์ชัน fwrite() และถ้าไม่สามารถเขียนข้อมูลลงไฟล์ได้ให้แสดงข้อความ “ERROR: Cannot write the file.” แล้วออกจากโปรแกรม กรณีไม่เกิดข้อผิดพลาดและเขียนข้อมูล เรียบร้อยให้ทาการปิดไฟล์ด้วยฟังก์ชัน fclose() ก่อนจบโปรแกรมพิมพ์ข้อความ “Data written to the file successfully.” ดว้ ยคาสง่ั echo 3.2 ฟงั ก์ชัน fputs() เปน็ ฟงั ก์ชันทใี่ ช้เขียนข้อมลู ลงเท็กซ์ไฟล์ มรี ปู แบบและตัวอย่างการใช้ งานของฟังกช์ นั ที่ไมแ่ ตกตา่ งจากฟงั ก์ชนั fwrite() ดังน้ี รปู แบบ fputs(หมายเลขอา้ งองิ ไฟล,์ ขอ้ มลู ทจ่ี ะเขยี นลงไฟล์ [ ,จานวนไบตท์ ใี่ หเ้ ขยี น] )

127 ตัวอย่างท่ี 6.7 การใช้งานฟังก์ชัน fputs() เปิดไฟล์ webdictionary.txt เพ่ือเขียนข้อมูลลงไฟล์ สามารถเขียนคาสั่งภาษา PHP ดังนี้ < ?php $myfile = fopen(\"webdictionary.txt\",\"w\") or die(\"Unable to open file!\"); / / Output one line until end-of-file fputs($myfile,”Add this to the file”); fclose($myfile); $myfile = fopen(\"webdictionary.txt\",\"r\") or die(\"Unable to open file!\"); w hile( ! f eof ( $m yf ile) ) { echo fgetc($myfile); } fclose($myfile); ?> จากชุดคาส่ังตัวอย่าง 6.7 เปิดไฟล์ชื่อ “webdictionary.txt” เพ่ือเขียนข้อมูลลง ไฟล์ เมื่อเปิดไฟล์ได้ให้เขียนข้อความ “Add this to the file” และปิดไฟล์ หรือกรณีที่เปิดไฟล์ไม่ได้ ให้แสดงข้อความ “Unable to open file!” แล้วออกจากโปรแกรม จากนั้นให้เปิดไฟล์ช่ือ “webdictionary.txt” แบบอ่านอย่างเดียวอีกคร้ัง แล้วเก็บหมายเลขอ้างอิงไฟล์ไว้ท่ีตัวแปร myfile หรือถ้าเปิดไฟล์ไม่สาเร็จให้แสดงข้อความ “Unable to open file!” แล้วออกจากโปรแกรม กรณี เปิดไฟล์สาเร็จให้วนรอบอ่านไฟลแ์ ละแสดงข้อมูลในไฟล์ออกทางหนา้ จอจนกล่าวจะพบจุดส้ินสุดไฟล์ กอ่ นจบโปรแกรมให้ทาการปิดไฟล์ 4 การจัดการไฟล์ ไฟล์ข้อมูลสามารถจัดการได้หลายอย่าง เช่น การเปล่ียนช่ือไฟล์ การลบไฟล์ และการ สาเนาไฟล์ เปน็ ต้น รายละเอียดฟังกช์ ันการจัดการไฟลแ์ ละการใช้งานมีดงั นี้ 4.1 การย้ายและเปลี่ยนชื่อไฟล์ ภาษา PHP ใช้ฟงั ก์ชนั rename() เพ่ือดาเนนิ การดงั กล่าว และฟงั กช์ ันนี้ยงั สามารถใชใ้ นการเปลีย่ นช่ือไดเรกทอรีได้ ซง่ึ มีรปู แบบและตัวอย่างการใชง้ านดงั น้ี รูปแบบ rename(หมายเลขอา้ งองิ ไฟลเ์ กา่ ,พาธและชอ่ื ไฟลใ์ หม่)

128 ตัวอยา่ งท่ี 6.8 การใช้งานฟังก์ชนั rename() เพื่อเปลย่ี นชือ่ ไฟล์ file.txt เปน็ newfile.txt แต่เกบ็ ไว้ ในไดเรกทอรีเดิม (Tutorial Republic, 2016) < ?php $file = \"file.txt\"; / / Check the existence of file if ( f ile_exist s( $f ile) ) { / / Attempt to rename the file if(rename($file, \"newfile.txt\")){ echo \"File renamed successfully.\"; } else{ echo \"ERROR: File cannot be renamed.\"; } } else{ echo \"ERROR: File does not exist.\"; } ?> จากชุดคาส่งั ตัวอย่าง 6.8 เกบ็ ช่อื ไฟลเ์ กา่ “file.txt” ไว้ในตวั แปร file จากน้ันตรวจสอบว่า ไฟล์นั้นมีอยู่จริงหรือไม่ ถ้ามีให้เปล่ียนช่ือไฟล์ใหม่เป็น “newfile.txt” พร้อมตรวจสอบด้วยว่าเปลีย่ น ช่ือไฟล์สาเร็จหรือไม่ ถ้าสาเร็จให้แสดงข้อความ “File renamed successfully” ออกทางหน้าจอ และถ้าไม่สาเร็จให้แสดงข้อความ “ERROR: File cannot be renamed.” ออกทางหน้าจอ จบการ ตรวจสอบการเปล่ียนชื่อไฟล์ กรณีตรวจหาไฟล์ไม่พบให้แสดงข้อความ “ERROR: File does not exist.” ออกทางหนา้ จอและออกจากโปรแกรม 4.2 การลบไฟล์ ภาษา PHP ใชฟ้ ังก์ชัน unlink() ในการลบไฟลอ์ อกจากระบบคอมพวิ เตอร์ มรี ปู แบบและตัวอย่างการนาไปใชง้ านดงั น้ี (Tutorial Republic, 2016) รูปแบบ unlink(พาธและชอื่ ไฟลท์ ตี่ อ้ งการลบ)

129 ตัวอย่างท่ี 6.9 การใชง้ านฟังกช์ ัน unlink() เพื่อลบไฟล์ note.txt ออกจะระบบคอมพวิ เตอร์ < ?php $file = \"note.txt\"; / / Check the existence of file if ( f ile_exist s( $f ile) ) { / / Attempt to delete the file if ( u nlink( $f ile) ) { echo \"File removed successfully.\"; } else{ echo \"ERROR: File cannot be removed.\"; } } else{ echo \"ERROR: File does not exist.\"; } ?> จากชุดคาส่ังตัวอย่าง 6.9 นาชื่อไฟล์ “note.txt” ที่ต้องการลบไปเก็บไว้ในตัวแปร file จากน้ันตรวจสอบก่อนว่ามีไฟล์ท่ีต้องการลบหรือไม่ ถ้ามีให้ใช้ฟังก์ชัน unlink() ในการลบไฟล์ พร้อม ตรวจสอบการลบไฟล์ ถ้าลบไฟล์สาเร็จให้แสดงข้อความ “File removed successfully.” ถ้าไม่ สามารถลบไฟล์ได้ให้แสดงขอ้ ความ “ERROR: File cannot be removed.” ออกทางหนา้ จอจบการ ตรวจสอบการลบไฟล์ ส่วนกรณีไม่มีไฟล์ที่ต้องการลบให้แสดงข้อความ “ERROR: File does not exists.” ออกทางหนา้ จอและสน้ิ สุดการทางานของโปรแกรม 4.3 การทาสาเนาไฟล์ ภาษา PHP จะใช้ฟังก์ชัน copy() ในการสาเนาไฟล์มีรูปแบบและ ตวั อยา่ งการนาไปใชง้ านดงั นี้ รปู แบบ copy(พาธและชอื่ ไฟลท์ ต่ี อ้ งการทาสาเนา,พาธและชอ่ื ไฟลป์ ลายทาง) ตัวอย่างท่ี 6.10 การใช้งานฟังก์ชัน copy() ในการสาเนาไฟล์ example.txt ไปเก็บไว้ในไดเรกทอรี backup < ?php / / Source file path $file = \"example.txt\"; / / Destination file path $newfile = \"backup/ example.txt\"; / / Check the existence of file

130 if ( f ile_exist s( $f ile) ) { / / Attempt to copy file if(copy($file, $newfile)){ echo \"File copied successfully.\"; } else{ echo \"ERROR: File could not be copied.\"; } } else{ echo \"ERROR: File does not exist.\"; } ?> จากชุดคาส่ังตัวอย่าง 6.10 กาหนดไฟล์ท่ีต้องการสาเนาคือ “example.txt” นาไปเก็บไว้ ในตัวแปร file และกาหนดปลายทางที่ต้องการสาเนา “backup/example.txt” ไว้ในตัวแปร newfile จากน้ันตรวจสอบก่อนวา่ มีไฟลท์ ่ีต้องการสาเนาหรือไม่ ถ้ามีให้ใช้ฟังก์ชัน copy() สาเนาไฟล์ ไปไวใ้ นตาแหน่งปลายทาง พรอ้ มตรวจสอบการสาเนาไฟล์ ถา้ สาเนาไฟลส์ าเร็จใหแ้ สดงขอ้ ความ “File copied successfully.” ถา้ ไม่สามารถสาเนาไฟล์ได้ใหแ้ สดงขอ้ ความ “ERROR: File could not be copied.” ออกทางหน้าจอจบการตรวจสอบการทาสาเนาไฟล์ กรณีไม่มีไฟล์ท่ีต้องการสาเนาให้แสดง ข้อความ “ERROR: File does not exists.” ออกทางหน้าจอและสนิ้ สดุ การทางานของโปรแกรม ไดเรกทอรี ไดเรกทอรีหรือโฟล์เดอร์เป็นพ้ืนที่บนระบบคอมพิวเตอร์ที่ใช้เก็บหลายๆ ไฟล์หรือหลายๆ ไดเรกทอรีย่อยไว้ภายใน สาหรับภาษา PHP ได้เตรียมฟังก์ชันสาหรับจัดการกับไดเรกทอรีไว้หลาย ฟังก์ชันดังสรุปไว้ในตารางท่ี 6.3 (สมศักด์ิ โชคชัยชุติกุล, 2550: 155-157; ชาญชัย ศุภอรรถกร, 2558: 102-106) ตารางท่ี 6.3 ฟงั ก์ชันในภาษา PHP สาหรบั จัดการไดเรกทอรี ฟงั กช์ นั หน้าที่ opendir() เปดิ ไดเรกทอรี closedir() ปดิ ไดเรกทอรี readdir() อ่านว่ามีไดเรกทอรยี ่อยหรือไฟลอ์ ะไรอยภู่ ายในไดเรกทอรีหลัก getcwd() ตรวจสอบไดเรกทอรีที่กาลงั ทางานอยู่

131 ฟังก์ชัน หน้าที่ chdir() เปลี่ยนไปทางานอกี ไดเรกทอรี mkdir() สรา้ งไดเรกทอรี rmdir() ลบไดเรกทอรี 1 การเปิดและปิดไดเรกทอรี ภาษา PHP ใช้ฟังก์ชัน opendir() สาหรับเปิดไดเรกทอรี และ ฟงั ก์ชนั closedir() สาหรบั ปดิ ไดเรกทอรี มรี ูปแบบการใช้งานฟงั ก์ชนั ดังน้ี รูปแบบ opendir(พาธและชอื่ ไดเรกทอรที ต่ี อ้ งการเปิด) รปู แบบ closedir(หมายเลขอา้ งองิ ไดเรกทอรที ตี่ อ้ งการปิด) 2 การอ่านรายช่ือไฟล์และไดเรกทอรีย่อยในไดเรกทอรี ใช้ฟังก์ชัน readdir() ซึ่งการอ่าน รายช่ือไฟล์หรือไดเรกทอรียอ่ ยจะต้องใช้คาสง่ั วนรอบเรียกใช้ฟังก์ชันน้หี ลายคร้ังเพ่ือจะได้แสดงข้อมลู ได้ทงั้ หมด มรี ปู แบบการใช้งานฟังกช์ นั ดังน้ี รูปแบบ readdir(หมายเลขอา้ งองิ ไดเรกทอร)ี ตัวอย่างที่ 6.11 การใช้งานฟังกช์ นั opendir(), closedir() และ readdir() มีชดุ คาสัง่ ดงั นี้ < ?php $dir=opendir(“c:/phpbook”); $file=“”; while(($file= readdir($dir))= = true) { print $file . “<br>”; } closedir ( $dir ) ; ?> จากชุดคาส่ังตัวอย่างที่ 6.11 ใช้ฟังก์ชัน opendir() เปิดไดเรกทอรี “phpbook” ที่อยู่ใน ไดรฟ์ c แล้วนาหมายเลขอ้างอิงท่ีได้จากการใช้ฟังก์ชัน opendir() ไปเก็บไว้ในตัวแปร dir ถัดมา

132 กาหนดค่าให้ตัวแปร file เป็นค่าว่าง ใช้คาสั่ง while วนรอบอ่านรายชื่อไฟล์และไดเรกทอรีย่อยที่อยู่ ในไดเรกทอรี “phpbook” ด้วยฟังก์ชัน readdir() แล้วเก็บรายช่ือเหล่าน้ันไว้ในตัวแปร file และ แสดงค่าเหล่าน้ันออกทางหนา้ จอจนกวา่ จะไม่พบไฟล์หรือไดเรกทอรีย่อย ซ่งึ ฟงั ก์ชนั readdir() จะคืน ค่าเป็น false ให้ออกจากคาส่ัง while จากน้ันใช้ฟังก์ชัน closedir() ในการปิดไดเรกทอรี “phpbook” 3 การสรา้ งไดเรกทอรี ในภาษา PHP ใชฟ้ ังก์ชัน mkdir() สาหรบั สร้างไดเรกทอรใี หม่ ซงึ่ มี รปู แบบการใช้งานฟังก์ชนั ดงั น้ี รปู แบบ mkdir(พาธและชอื่ ไดเรกทอรที ต่ี อ้ งการสรา้ ง) ตัวอยา่ งที่ 6.12 การสรา้ งไดเรกทอรีช่ือ testdir ดว้ ยฟังก์ชนั mkdir() (Tutorial Republic, 2016) < ?php / / The directory path $dir = \"testdir\"; / / Check the existence of directory if ( ! f ile_exist s( $dir ) ) { / / Attempt to create directory if ( m kdir( $dir) ) { echo \"Directory created successfully.\"; } else{ echo \"ERROR: Directory could not be created.\"; } } else{ echo \"ERROR: Directory already exists.\"; } ?> จากชดุ คาส่ังตวั อยา่ ง 6.12 กาหนดใหต้ ัวแปร dir มคี ่าเปน็ “testdir” ซง่ึ เป็นชื่อไดเรกทอรี ท่ีตอ้ งการสรา้ ง จากนน้ั ตรวจสอบว่ามีไดเรกทอรนี ้ีแล้วหรือยังด้วยฟังกช์ ัน file_exits() ถ้าไม่มีให้สร้าง ไดเรกทอรี “testdir” ด้วยฟังก์ชัน mkdir() ถ้าสร้างสาเร็จให้แสดงข้อความ “Directory created successfully” ถ้าไม่สามารถสร้างได้ให้แสดงข้อความ “ERROR: Directory could not be created.” จบการตรวจสอบการสร้างไดเรกทอรี ส่วนกรณีที่พบไดเรกทอรีที่จะสร้างแล้วในระบบ คอมพิวเตอร์ให้แสดงขอ้ ความ “ERROR: Directory already exits” สน้ิ สุดการทางานของโปรแกรม

133 4 การลบไดเรกทอรี ใช้ฟังก์ชัน rmdir() ถา้ ลบไดเรกทอรสี าเร็จฟงั กช์ นั จะคืนค่า true และถา้ ลบไม่สาเรจ็ จะคืนค่า false รปู แบบการใช้งานฟังก์ชนั มีดงั น้ี รปู แบบ rmdir(พาธและชอ่ื ไดเรกทอรที ต่ี อ้ งการลบ) ตวั อย่างท่ี 6.13 การลบไดเรกทอรี “temp” ดว้ ยฟงั ก์ชนั rmdir() มีชุดคาส่ังดังน้ี < ?php / / The directory path $deldir = \"temp\"; / / Attempt to delete directory if ( r m dir ( $deldir ) ) { echo \"Directory deleted successfully.\"; } else{ echo \"ERROR: Directory could not be deleted.\"; } ?> จากชดุ คาสัง่ ตัวอยา่ งท่ี 6.13 เก็บชือ่ ไดเรกทอรี “temp” ท่ตี อ้ งการลบไวใ้ นตัวแปร deldir จากน้ันใช้ฟังก์ชัน rmdir() ลบไดเรกทอรีตามช่ือที่เก็บไว้ในตัวแปร deldir และตรวจสอบการลบด้วย คาส่ัง if() ถ้าลบไดเรกทอรีสาเร็จฟังก์ชัน rmdir() จะคืนค่าเป็น true แล้วแสดงข้อความ “Directory deleted successfully.” ส่วนกรณีท่ีไม่สามารถลบไดเรกทอรีจะคืนค่าเป็น false ส่งผลให้โปรแกรม ดาเนนิ การคาสัง่ หลัง else โดยจะแสดงขอ้ ความ “ERROR: Directory could not be deleted.” 5 การหาไดเรกทอรีปัจจุบัน และการเปล่ียนไดเรกทอรี จะใช้ฟังก์ชัน chdir() ในการเปลี่ยน ไดเรกทอรี และใช้ฟังก์ชัน getcwd() ในการตรวจหาไดเรกทอรีปัจจุบันท่ีกาลังทางานอยู่ รูปแบบการ ใช้งานทง้ั 2 ฟงั ก์ชันมดี ังน้ี รูปแบบ chdir(พาธและชอื่ ไดเรกทอรที ต่ี อ้ งการเปลยี่ น) และ get cw d( ) รปู แบบ

134 ตวั อยา่ งที่ 6.14 การใช้งานฟังกช์ นั chdir() และ getcwd() มชี ุดคาสง่ั ดงั น้ี < ?php echo “Current directory is ” . getcwd() . “<br>”; / / The directory path $chdir = \"temp-change\"; / / Attempt to change directory if ( chdir ( $chdir ) ) { echo \"Current directory is changed to \" . getcwd(); } else{ echo \"ERROR: Current directory could not be changed.\"; } ?> จากชุดคาสั่งตัวอย่างท่ี 6.14 แสดงข้อความ “Current directory is ” และชื่อไดเรกทอรี ที่ทางานปัจจุบัน ซ่ึงเป็นค่าท่ีได้จากฟังก์ชัน getcwd() จบข้อความให้ขึ้นบรรทัดใหม่ ซึ่งเป็นผลจาก คาสั่ง <br> จากนนั้ เกบ็ ชื่อไดเรกทอรี “temp-change” ทีต่ อ้ งการเปลีย่ นไวใ้ นตวั แปร chdir จากน้ัน ใช้ฟังก์ชัน chdir() เปลี่ยนไดเรกทอรีตามช่ือที่เก็บไว้ในตัวแปร chdir และตรวจสอบการเปล่ียนด้วย คาสง่ั if() ถ้าเปลย่ี นไดเรกทอรีสาเรจ็ ฟงั กช์ ัน chdir() จะคืนคา่ เป็น true แล้วแสดงขอ้ ความ “Current directory is changed to ” ส่วนกรณีท่ีไม่สามารถเปลี่ยนไดเรกทอรีจะคืนค่าเป็น false ส่งผลให้ โปรแกรมดาเนินการคาสั่งหลัง else โดยจะแสดงข้อความ “ERROR: Current directory could not be changed.”

135 สรุป ไฟล์ในระบบคอมพิวเตอร์สามารถแบ่งออกได้ 2 ชนิดคือ เท็กไฟล์ และไบนารีไฟล์ ซ่ึงใน ภาษา PHP ได้เตรยี มฟงั ก์ชนั ในการจดั การกับไฟล์ไว้หลายฟงั กช์ ัน เชน่ ฟงั ก์ชันในการเปิดและปิดไฟล์ อ่านข้อมูลจากไฟล์ และเขียนข้อมูลลงสู่ไฟล์ เป็นต้น สาหรับฟังก์ชันในการอ่านข้อมูลจากไฟล์มีให้ เลอื กใช้งานอยูห่ ลายฟงั กช์ ัน เช่น fread(), fgetc() และ fgets() เป็นต้น ซงึ่ ฟังกช์ ันเหล่านี้ตอ้ งใชค้ วบคู่ กับฟังก์ชันสาหรับเปิดไฟล์ นั้นคือ fopen() และฟังก์ชันในการปิดไฟล์ นั้นคือ fclose() ส่วนฟังก์ชัน สาหรบั เขยี นขอ้ มลู ลงไฟล์ เช่น fwrite และ fputs() เป็นต้น สาหรบั การจดั การไฟล์สามารถดาเนินการ ได้หลายรูปแบบ เช่น การเปล่ียนช่ือหรือย้าย การลบ และการสาเนาไฟล์ เป็นต้น ถัดมาเป็นเน้ือหา เก่ียวกับการจัดการกับไดเรกทอรี ซึ่งเป็นแหล่งท่ีจัดเก็บหลายๆ ไฟล์หรือไดเรกทอรีย่อยไว้รวมกัน สามารถนาฟังกช์ ันต่างๆ ท่มี ีในภาษา PHP มาจดั การ เช่น ใชฟ้ ังกช์ นั opendir() ในการเปดิ ไดเรกทอรี ฟงั ก์ชัน closedir() สาหรับปดิ ไดเรกทอรี ฟงั ก์ชนั readdir() จะใช้อา่ นรายช่ือไฟล์และไดเรกทอรีย่อย ฟังก์ชัน chdir() เพื่อเปลี่ยนไปทางานอีกไดเรกทอรีหนึ่ง ฟังก์ชัน mkdir() เพ่ือสร้างไดเรกทอรี และ ฟังกช์ ัน rmdir() เพือ่ ลบไดเรกทอรีออกจากระบบคอมพิวเตอร์ เปน็ ตน้ แบบฝกึ หัด 1. จงบอกความหมายของไฟลข์ ้อมลู จาแนกออกเปน็ กป่ี ระเภทอะไรบา้ งจงอธบิ าย 2. จงเขียนโปรแกรมต้ังช่ือเปน็ manage_file_รหสั นศ 4 ตวั ทา้ ย .php ทีม่ รี ายละเอียดดังน้ี 1. ใหโ้ ปรแกรมสรา้ ง directory ช่ือ รหสั นกั ศกึ ษา 4 ตวั ทา้ ย ไวท้ ี่ drive : D 2. แล้วให้สร้างไฟล์ชือ่ myprofile.txt เก็บไวใ้ น directory ดงั กลา่ ว ใหเ้ ขียนข้อความ ต่อไปนลี้ งในไฟล์ myprofile.txt 2.1 รหสั นกั ศึกษา 2.2 ชือ่ -นามสกลุ 2.3 สาขาวชิ า คณะ มหาวิทยาลยั 2.4 ความสามารถพเิ ศษ 3. จากน้ันให้อา่ นข้อความจากไฟล์ดงั กลา่ วใหแ้ สดงออกทางโปรแกรมเบราวเ์ ซอร์


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