อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf ·...

184

Transcript of อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf ·...

Page 1: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1
Page 2: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

เอกสารประกอบการสอน

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

(Computer Programming for Information Work 1)

รหสวชา IS50202

วราภรณ ขยายผล

วท.ม. (เทคโนโลยสารสนเทศ)

สาขาวชาสารสนเทศศาสตร คณะมนษยศาสตรและสงคมศาสตร มหาวทยาลยราชภฏอดรธาน

2560

Page 3: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

ค ำน ำ เอกสารประกอบการสอนรายวชา การเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1

รหสวชา IS50202 น เปนรายวชาเอกบงคบส าหรบนกศกษาสาขาวชาสารสนเทศศาสตร เอกสารเลมนจะชวยใหนกศกษมความรความเขาใจเนอหาในรายวชามากยงขน โดยผเขยนไดแบงเนอหาในการเรยนการสอนไว 7 หวขอเรอง ประกอบดวย ความรพนฐานส าหรบการเขยนโปรแกรม โครงสรางการเขยนโปรแกรม ความรพนฐานการเขยนโปรแกรมบนอนเทอรเนต ความรพนฐานเกยวกบภาษา PHP

ฟงกชน (Functions) ของภาษา PHP การจดการไฟลและไดเรคทอรดวยภาษา PHP และการสรางฟอรม (HTML Form) รบสงขอมล

ผเขยนไดศกษาคนควาขอมลเอกสาร ต ารา และแนวความคดจากเจาของผลงานตางๆ ดงทปรากฏในเอกสารอางอง ผเขยนขอขอบพระคณเปนอยางสงไว ณ ทน ผเขยนหวงวาเอกสารเลมนจะอ านวยประโยชนตามจดประสงคทตงไว

วราภรณ ขยายผล

มนาคม 2560

Page 4: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญ

หนา

ค าน า ................................................................................................................................. ก

สารบญ ............................................................................................................................. ค

สารบญภาพ ...................................................................................................................... ช

สารบญตาราง ..................................................................................................................... ฎ

แผนบรหารการสอนประจ ารายวชา .................................................................................... ฐ

แผนบรหารการสอนประจ าบทท 1....................................................................................... 1

บทท 1 ความรพนฐานส าหรบการเขยนโปรแกรม ............................................................... 3

ระบบคอมพวเตอร ................................................................ .......................................... 3 โปรแกรมคอมพวเตอร ................................................................ .................................... 4

ความหมายของโปรแกรมคอมพวเตอร .................................................................... 4 ภาษาคอมพวเตอร ............................................................................................... .... 4 อลกอรทม ............................................................................................ .................... 6 ขนตอนการเขยนโปรแกรม ...................................................................................... 24

สรป ........................................................................................ ........................................ 27 แบบฝกหด ................................................................................... ................................... 28 เอกสารอางอง ................................................................................... .............................. 29

แผนบรหารการสอนประจ าบทท 2....................................................................................... 31

บทท 2 โครงสรางการเขยนโปรแกรม ................................................................................. 33

โครงสรางแบบตามล าดบ (Sequence Structure) ....................................................... 33 โครงสรางแบบทางเลอก (Selection Structure) …....................................................... 35 โครงสรางแบบวนรอบ (Loop Structure) ..................................................................... 38 สรป ........................................................................................ ........................................ 42 แบบฝกหด ........................................................................................ .............................. 42 เอกสารอางอง ..................................................................................... ............................ 43

แผนบรหารการสอนประจ าบทท 3....................................................................................... 45

บทท 3 ความรพนฐานการเขยนโปรแกรมบนอนเทอรเนต .................................................. 47

อนเทอรเนต ........................................................................................ ............................ 47 เวลดไวดเวบ (World Wide Web : WWW) .................................................................. 49

Page 5: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

ง สารบญ (ตอ)

หนา

เวบเบราวเซอร (Web Browsers) .................................................................................. 50 เวบเซรฟเวอร (Web Servers) ....................................................................................... 51 ยอารแอล (Uniform Resource Locators : URL) ....................................................... 51 โพรโทคอลเอชททพ (The Hypertext Transfer Protocol : HTTP) ........................... 52 ภาษาทใชในการเขยนโปรแกรม ..................................................................................... 52

ภาษา HTML ........................................................................................................... 52 ภาษา PHP .............................................................................................................. 53

การเตรยมความพรอมในการเขยนโปรแกรมภาษา PHP ................................................ 54 สรป ........................................................................................ ........................................ 55 แบบฝกหด ........................................................................................ .............................. 55 เอกสารอางอง .......................................................................................... ....................... 56

แผนบรหารการสอนประจ าบทท 4....................................................................................... 57

บทท 4 ความรเบองตนเกยวกบภาษา PHP ........................................................................ 59

หลกการท างานของภาษา PHP ...................................................................................... 59 รปแบบของภาษา ........................................................................................................... 60 ตวแปร (Variable) และคาคงท (Constant) .................................................................. 61 ค าสงภาษา PHP เบองตน .............................................................................................. 66 ตวด าเนนการ .................................................................................................................. 70 โครงสรางควบคม ………………………………........................................................................ 75

กลมค าสงแบบทางเลอก .......................................................................................... 75 กลมค าสงแบบวนรอบ ............................................................................................. 81 กลมค าสงแบบกระโดดออกจากค าสงวนรอบ .......................................................... 87

สรป ........................................................................................ ........................................ 89 แบบฝกหด .................................................................................. .................................... 89 เอกสารอางอง ............................................................................. .................................... 91

แผนบรหารการสอนประจ าบทท 5....................................................................................... 93

บทท 5 ฟงกชน (Functions) ของภาษา PHP ................................................................... 95

ลกษณะทวไปของฟงกชน ........................................................................ ....................... 95 การประกาศฟงกชน ................................................................................. ....................... 95 การเรยกใชงานแบบไมมการสงผานคา ........................................................................... 96 การเรยกใชงานแบบมการสงผานคา ............................................................................... 97

Page 6: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญ (ตอ) หนา

การคนคาจากฟงกชน ................................................................................................ 98 การสงผานคาใหแกฟงกชน ....................................................................................... 98 ขอบเขตการเรยกใชตวแปร ....................................................................................... 100

การน าเขาสครปตจากไฟลอนมาใชงาน ..................................................................... 102

การเรยกใชฟงกชนทมอยใน PHP ……....................................................................... 103 สรป ........................................................................................ ..................................... 114 แบบฝกหด ........................................................................................ .......................... 115 เอกสารอางอง ............................................................................................................. 116

แผนบรหารการสอนประจ าบทท 6....................................................................................... 117

บทท 6 การจดการไฟลดวยภาษา PHP .............................................................................. 119

ไฟลขอมล ....................................................................................................................... 119 การเปดและปดไฟลขอมล ........................................................................................ 120 การอานขอมลจากไฟลขอมล ................................................................................... 122 การเขยนขอมลลงไฟลขอมล .................................................................................... 125 การจดการไฟล ........................................................................................................ 127

ไดเรกทอร ....................................................................................................................... 130

การเปดและปดไดเรกทอร ....................................................................................... 131 การอานรายชอไฟลและไดเรกทอรยอยในไดเรกทอร .............................................. 131 การสรางไดเรกทอร ................................................................................................. 132 การลบไดเรกทอร .................................................................................................... 133 การหาไดเรกทอรปจจบน ........................................................................................ 133

สรป ........................................................................................... ..................................... 135

แบบฝกหด ............................................................................................ .......................... 135

เอกสารอางอง ................................................................................................................ 136

แผนบรหารการสอนประจ าบทท 7....................................................................................... 137

บทท 7 การสรางฟอรม (HTML Form) รบสงขอมล .......................................................... 139

การท างานของฟอรม ...................................................................................................... 139 การสรางฟอรมรบขอมล ................................................................................................. 140 ชองรบขอมลตางๆ ในฟอรม ........................................................................................... 142 การสงผานขอมลระหวางเวบเพจ .................................................................................... 161 คกก (Cookie) และ เซสชน (Session) .......................................................................... 162 สรป ........................................................................................ ........................................ 164

Page 7: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

ฉ หนา

แบบฝกหด .................................................................................... .................................. 165 เอกสารอางอง ............................................................................. .................................... 167

บรรณานกรม ...................................................................................................................... 169

.

Page 8: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญภาพ

ภาพท หนา

1.1 ผงงานระบบการสรางใบก ากบสนคา ................................................................................. 14 1.2 ผงงานโปรแกรมส าหรบหาผลรวมของตวแปร a, b และ c แลวเกบไวในตวแปร sum ....... 15 1.3 ผงงานโปรแกรมแสดงการหาผลรวมตวเลข 2 จ านวน ......................................................... 20 1.4 ผงงานโปรแกรมแสดงการวดผลการเรยนของนกเรยน ........................................................ 21 1.5 ผงงานโปรแกรมใหแสดงคาทเกบในตวแปร N ..................................................................... 22 1.6 ผงงานโปรแกรมแสดงผลรวมของตวเลขตงแต 1 ถง N ........................................................ 23 1.7 ขนตอนการวเคราะหปญหา ................................................... ...................... ...................... 24 2.1 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบตามล าดบ ..................................................... 33 2.2 ผงงานและรหสเทยมโปรแกรมหาผลคณของตวเลข ............................................................ 34 2.3 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบทางเลอก ...................................................... 35 2.4 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบ 1 ทางเลอก ................................................. 36 2.5 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบหลายทางเลอก ............................................. 37 2.6 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบวนรอบ ......................................................... 39 2.7 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบด าเนนการวนรอบกอนแลวจงตรวจสอบเงอนไขเพอท าซ า ........................................................................................................................

40

2.8 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบท าซ าตามจ านวนรอบทก าหนด .................... 41 3.1 เครอขายอนเทอรเนต .................................................................... ....................................... 49 3.2 บรการเวลดไวดเวบ .............................................................................................................. 50 3.3 โปรแกรมเวบเบราวเซอร ...................................................................................................... 51 3.4 ตวอยางเวบเซรฟเวอรทใชงานอยในปจจบน ........................................................................ 51 3.5 การพมพยอารแอล ............................................................................................................... 52 3.6 โครงสรางและแทกมาตรฐานภาษา HTML .......................................................................... 53 3.7 การเขยนโปรแกรมภาษา PHP ดวย DreamweaverCS6 ................................................... 54 3.8 การทดสอบโปรแกรมภาษา PHP ผานทางเวบเบราวเซอร .................................................. 55 4.1 หลกการท างานของภาษา PHP (ทมา guru99, 2017) ........................................................ 59 4.2 การใสค าอธบายลงในโปรแกรม ........................................................................................... 66 4.3 ค าสง if แสดงในรปแบบผงงาน .......................................................................................... 76 4.4 ค าสง if…else แสดงในรปแบบผงงาน ................................................................................ 77 4.5 ค าสง if… elseif แสดงในรปแบบผงงาน ............................................................................ 79 4.6 ค าสง switch … case แสดงในรปแบบผงงาน, ทมา : (zentut, 2017) ............................. 81

Page 9: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญภาพ (ตอ)

หนา

4.7 ค าสง while แสดงในรปแบบผงงาน .................................................................................... 82 4.8 ค าสง do … while แสดงในรปแบบผงงาน ......................................................................... 83 4.9 ค าสง for แสดงในรปแบบผงงาน ......................................................................................... 85 7.1 หนาจอลอกอน (Login Form) ....................................................................... ..................... 139 7.2 การท างานของฟอรม (Form HTML) ............................................................................... ... 140 7.3 ผลการสงขอมลแบบ get ..................................................................................................... 141 7.4 ผลการสงขอมลแบบ post ................................................................................................... 142 7.5 เครองมอ Forms ทใชในการสรางฟอรม ............................................................................. 143 7.6 การสรางฟอรมรบขอมลดวยโปรแกรม Dreamweaver ...................................................... 144 7.7a การเลอกแทก <table> .................................................................................................... 145 7.7b ขนตอนการสรางตาราง .................................................................................................... 145 7.7c ตารางและการก าหนดคณสมบตของตาราง ....................................................................... 146 7.8a ใสรายละเอยดทตองการลงในตาราง .................................................................................. 146 7.8b การก าหนด Properties ของ “text field” ส าหรบกรอกชอ .......................................... 147 7.8c การก าหนด Properties ของ “text field” ส าหรบกรอกนามสกล .................................. 147 7.9 ผลลพธและชดค าสงการแทรกชองรบบรรทดเดยวส าหรบกรอกชอ และนามสกล .............. 147 7.10 แทรกชองรบบรรทดเดยวส าหรบกรอกรหสผใช ................................................................ 149 7.11 แทรกชองรบรหสผานบรรทดเดยวส าหรบกรอกรหสผาน .................................................. 149 7.12 ผลลพธการแทรกชองรบรหสผานบรรทดเดยวส าหรบกรอกรหสผใช และรหสผาน ………. 149 7.13 ขนตอนการเพมชองรบขอมลแบบกลองตวเลอก (checkbox) “วชาการ หนงสอเรยน” .. 150 7.14 เพมกลองตวเลอก “นวนยาย เรองสน การตน” ................................................................ 151 7.15 เพมกลองตวเลอก “วารสาร หนงสอพมพ นตยสาร” ........................................................ 151 7.16 เพมกลองตวเลอก “ทวไป” ............................................................................................... 152 7.17 การเพมกลองตวเลอกของประเภทหนงสอทชอบอาน ....................................................... 152 7.18 ขนตอนการเพมปมตวเลอก “เพศ” (radio button) ส าหรบ “ชาย” .............................. 153 7.19 ขนตอนการเพมปมตวเลอก “เพศ” (radio button) ส าหรบ “หญง” .............................. 154 7.20 การเพมปมตวเลอก “เพศ” ปมทใหเลอกคอ “ชาย” และ “หญง” ................................... 154 7.21 ขนตอนการเพมชองรบชอไฟล .......................................................................................... 155 7.22 ขนตอนการเพมปม “Submit” ......................................................................................... 156 7.23 ขนตอนการเพมปม “Reset” ...................................................................................... ...... 157 7.24 ขนตอนการเพมชองรบหลายบรรทด “ทอย” .................................................................... 158

Page 10: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญภาพ (ตอ)

หนา 7.25 ขนตอนการเพมรายการตวเลอก “คณะทสงกด” .............................................................. 160 7.26 หนาจอฟอรมรบสมครสมาชกหองสมด .............................................................................. 161 7.27 การก าหนดแอตตรบวตของแทก <form> ท DreamweaverCS6 ................................... 161 7.28 ชดค าสงในโปรแกรม member_list.php ส าหรบแสดงคาออกทางหนาเวบ .................... 162

Page 11: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

Page 12: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

สารบญตาราง ตารางท หนา

1.1 สญลกษณ ล าดบความส าคญของการท างานของเครองหมายการค านวณ .......................... 8 1.2 ผลลพธของการเปรยบเทยบประโยคค าสงเงอนไขตามหลกการทางพชคณตแบบบลน ....... 9 1.3 สญลกษณมาตรฐานในการเขยนผงงานโปรแกรม ................................................................ 16 4.1 ตวด าเนนการเกยวกบตวเลข ............................................................................................... 70 4.2 ตวด าเนนการในการก าหนดคาใหกบตวแปร ....................................................................... 72 4.3 ตวด าเนนการเปรยบเทยบ ................................................................................................... 73 4.4 ตวด าเนนการทางตรรกะ ..................................................................................................... 74 5.1 รหสรปแบบการแสดงผลวนท และเวลา ............................................................................. 105 6.1 ฟงกชนในภาษา PHP ส าหรบจดการไฟล ............................................................................ 120 6.2 วธการเปดไฟลในภาษา PHP ............................................................................................... 120 6.3 ฟงกชนในภาษา PHP ส าหรบจดการไดเรกทอร .................................................................. 130 7.1 รายละเอยดแอตตรบวตหลกของ แทก <form> ................................................................. 141 7.2 รายละเอยดคาทก าหนดใหกบแอตตรบวต type ของแทก <input> ................................. 142

Page 13: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

Page 14: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าวชา รหสวชา IS50202

รายวชา การเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 3(2-2-5) (Computer Programming for Information Work 1)

ค าอธบายรายวชา

ศกษาหลกการพนฐานในการเขยนโปรแกรมคอมพวเตอร ภาษาคอมพวเตอร โครงสรางโปรแกรม ขนตอนการพฒนาโปรแกรม แนวคดทางคณตศาสตรและหลกไวยากรณส าหรบการเขยนโปรแกรม ฝกปฏบตการเขยนโปรแกรมคอมพวเตอรเบองตนเพองานสารสนเทศ

วตถประสงคทวไป

1. เพอใหมความรความเขาใจเกยวกบหลกการพนฐานในการเขยนโปรแกรมคอมพวเตอร ภาษาคอมพวเตอร และโครงสรางโปรแกรม

2. เพอใหมความรความเขาใจเกยวกบขนตอนการพฒนาโปรแกรม แนวคดทางคณตศาสตรและหลกไวยากรณส าหรบการเขยนโปรแกรม

3. เพอใหสามารถเขยนโปรแกรมคอมพวเตอรเบองตนเพองานสารสนเทศ

เนอหา

บทท 1 ความรพนฐานส าหรบการเขยนโปรแกรม 8 ชวโมง ระบบคอมพวเตอร โปรแกรมคอมพวเตอร

ความหมายของโปรแกรมคอมพวเตอร ภาษาคอมพวเตอร อลกอรทม ขนตอนการเขยนโปรแกรม

สรป แบบฝกหด

บทท 2 โครงสรางการเขยนโปรแกรม 8 ชวโมง

โครงสรางแบบตามล าดบ (Sequence Structure)

Page 15: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

โครงสรางแบบทางเลอก (Selection Structure) โครงสรางแบบวนรอบ (Loop Structure) สรป แบบฝกหด

บทท 3 ความรพนฐานการเขยนโปรแกรมบนอนเทอรเนต 8 ชวโมง

อนเทอรเนต เวลดไวดเวบ (World Wide Web : WWW) เวบเบราวเซอร (Web Browsers) เวบเซรฟเวอร (Web Servers) ยอารแอล (Uniform Resource Locators : URL) โพรโทคอลเอชททพ (The Hypertext Transfer Protocol : HTTP) ภาษาทใชในการเขยนโปรแกรม

ภาษา HTML ภาษา PHP

การเตรยมความพรอมในการเขยนโปรแกรมภาษา PHP สรป แบบฝกหด

บทท 4 ความรเบองตนเกยวกบภาษา PHP 12 ชวโมง

หลกการท างานของภาษา PHP รปแบบของภาษา ตวแปร (Variable) และคาคงท (Constant) ค าสงภาษา PHP เบองตน ตวด าเนนการ โครงสรางควบคม

กลมค าสงแบบทางเลอก กลมค าสงแบบวนรอบ กลมค าสงแบบกระโดดออกจากค าสงวนรอบ

สรป แบบฝกหด

บทท 5 ฟงกชน (Functions) ของภาษา PHP 8 ชวโมง

ลกษณะทวไปของฟงกชน การประกาศฟงกชน การเรยกใชงานแบบไมมการสงผานคา

Page 16: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

การเรยกใชงานแบบมการสงผานคา การคนคาจากฟงกชน การสงผานคาใหแกฟงกชน ขอบเขตการเรยกใชตวแปร

การน าเขาสครปตจากไฟลอนมาใชงาน

การเรยกใชฟงกชนทมอยใน PHP สรป แบบฝกหด

บทท 6 การจดการไฟลดวยภาษา PHP 4 ชวโมง

ไฟลขอมล การเปดและปดไฟลขอมล การอานขอมลจากไฟลขอมล การเขยนขอมลลงไฟลขอมล การจดการไฟล

ไดเรกทอร

การเปดและปดไดเรกทอร การอานรายชอไฟลและไดเรกทอรยอยในไดเรกทอร การสรางไดเรกทอร การลบไดเรกทอร การหาไดเรกทอรปจจบน

สรป

แบบฝกหด

บทท 7 การสรางฟอรม (HTML Form) รบสงขอมล 16 ชวโมง

การท างานของฟอรม การสรางฟอรมรบขอมล ชองรบขอมลตางๆ ในฟอรม การสงผานขอมลระหวางเวบเพจ คกก (Cookie) และ เซสชน (Session) สรป แบบฝกหด

Page 17: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

วธสอนและกจกรรม

1. ตงค าถามใหนกศกษาตอบพรอมแสดงความคดเหน 2. รวมอภปรายเนอหาและท าแบบฝกหดในชนเรยน 3. มอบหมายแบบฝกหดเปนการบาน 4. บรรยายและสาธตโดยใชตวอยางประกอบ 5. สาธตการเขยนโปรแกรมดวยโปรแกรม Adobe Dreamweaver 6. นกศกษาฝกเขยนโปรแกรมดวยโปรแกรม Adobe Dreamweaver

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1

2. เครองคอมพวเตอร 3. โปรแกรม Microsoft PowerPoint 4. โปรแกรม Appserv

5. โปรแกรม Adobe Dreamweaver 6. โปรแกรมประเภท Web Browser : Google Chrome

7. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและการประเมนผล

1. การวดผล 1.1. คะแนนระหวางภาคเรยน 70 คะแนน

1.1.1. ความสนใจและการมสวนรวมในชนเรยน 10 คะแนน 1.1.2. งานและกจกรรมทไดรบมอบหมาย 35 คะแนน 1.1.3. ทดสอบกลางภาคเรยน 25 คะแนน

1.2. คะแนนปลายภาคเรยน ทดสอบโดยการปฏบต 30 คะแนน 2. การประเมนผล เกณฑการใหคะแนนระดบองเกณฑดงน

ระดบคะแนน เกรด

80 - 100 A

75 - 79 B+

70 - 74 B

65 - 69 C+

60 - 64 C

55 - 59 D+

50 - 54 D

0 - 49 F

Page 18: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

Page 19: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 1

เนอหาประจ าบทท 1 ความรพนฐานส าหรบการเขยนโปรแกรม

ระบบคอมพวเตอร โปรแกรมคอมพเตอร ความหมายของโปรแกรมคอมพวเตอร ภาษาคอมพวเตอร อลกอรทม

ขนตอนการเขยนโปรแกรม

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนนแลว ผเรยนมพฤตกรรมดงน 1. อธบายความหมายเกยวกบระบบคอมพวเตอร โปรแกรมคอมพวเตอร ภาษาคอมพวเตอร และอลกอรทม 2. จ าแนกประเภทของภาษาคอมพวเตอร 3. จ าแนกการท างานพนฐานของระบบคอมพวเตอร

4. สามารถบอกขนตอนการเขยนโปรแกรม 5. สามารถเขยนอลกอรทมในรปแบบผงงานและรหสเทยมแกไขปญหาตามแบบฝกหดประจ าบทได

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

2. กจกรรมการเรยนการสอน

สปดาห 1-2 (8 ชวโมง) 2.1 ผสอนชแจงค าอธบายรายวชา วธการเรยนการสอน การประเมนผลใหผเรยน

ทราบ และสรางขอตกลงรวมกนในชนเรยน 2.2 ผสอนอธบายเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยงไมเขาใจ

ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญ

Page 20: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

2 2.3 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom

เพอใหผสอนตรวจ อธบายเพมเตม และสรปค าตอบทถกตอง

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 1 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 21: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 1 ความรพนฐานส าหรบการเขยนโปรแกรม

การเขยนโปรแกรมคอมพวเตอรใหตรงตามความตองการในการใชงานนน ผเขยนโปรแกรมควรศกษารายละเอยดทเกยวของ เพอจะไดน าไปประยกตในการเขยนโปรแกรมระบบงานตางๆ ไดอยางเหมาะสมและมประสทธภาพ ซงในบทนไดเตรยมเนอหาส าหรบผเรมตนและสนใจการเขยนโปรแกรมคอมพวเตอร โดยมเนอหาเกยวกบระบบคอมพเตอร ความหมายโปรแกรมคอมพวเตอร ภาษาคอมพวเตอร ความหมายและหลกการเขยนอลกอรทม และขนตอนการเขยนโปรแกรม

ระบบคอมพวเตอร

ระบบคอมพวเตอรหมายถงการท างานบนเครองคอมพวเตอรทมองคประกอบของฮารดแวร ซอฟตแวร ขอมลน าเขา กระบวนการ และผลลพธทท างานประสานกน เพอท างานบางอยางใหเสรจสน ซงรายละเอยดขององคประกอบตางๆ มดงน (โอภาส เอยมสรวงค , 2557: 31; Joyce Farrell, 2013: 2-4)

1. ฮารดแวร (Hardware) หมายถงอปกรณตางๆ ทเกยวของหรอท างานรวมกนกบเเครองคอมพวเตอร สามารถมองเหนดวยตาและจบตองได เชน แปนพมพ จอภาพ เมาส ล าโพง และเครองพมพ เปนตน ฮารดแวรสามารถแบงออกได 4 หนวยตามลกษณะการท างาน ดงน 1.1 หนวยรบขอมล (Input Unit) หนาทของหนวยนคอ น าเขาขอมลจากผใชไปยงหนวยประมวลผลกลาง ฮารดแวรทท าหนาทในหนวยนคอ แปนพมพ เมาส เครองอานภาพ ปากกาแสง และหนาจอแบบสมผส เปนตน

1.2 หนวยประมวลผลกลาง (Central Processing Unit : CPU) ท าหนาทปฏบตตามค าสงทรบเขามาจากหนวยรบขอมล เพอประมวลผลใหไดผลลพธตามทตองการ

1.3 หนวยแสดงผล (Output Unit) มหนาทน าขอมลหรอผลลพธทไดจากการประมวลผลไปแสดงออกใหผใชงานไดรบร สามารถแสดงออกในลกษณะกระดาษผานเครองพมพ เสยงผานล าโพง และผานจอภาพ เปนตน

1.4 หนวยเกบขอมลส ารอง (Storage Unit) หนวยนจะท าหนาทเกบขอมลทไดจากการประมวลผลน าไปเกบไวในหนวยความจ าส ารอง (ฮารดดสก) ของเครองคอมพวเตอร เพอจะไดน าขอมลทเกบไวนนไปใชในประมวลผลงานบางอยางตอไป 2. ซอฟตแวร (Software) หมายถง โปรแกรมหรอชดค าสงทนกเขยนโปรแกรมสรางขนมาสงใหคอมพวเตอรท างานตามขนตอนทสงใหด าเนนการ หรอควบคมการท างานของฮารดแวร ซงเขยนขนดวยภาษาคอมพวเตอร สามารถแบงออกเปน 2 ประเภทคอ 2.1 ซอฟตแวรระบบ (System Software) เปนโปรแกรมทพฒนาขนมาเพอควบคมการท างานของฮารดแวร เพอรองรบการประมวลผลหรอท างานตามค าสงของผใช ควบคมการเขาใชทรพยากรของเครองคอมพวเตอร แบงปนการใชงานอปกรณเพอหลกเลยงการท างานทขดแยงกน ตวอยางซอฟตแวรประเภทนเชน Windows, Linux หรอ UNIX เปนตน

Page 22: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

4

2.2 ซอฟตแวรประยกต (Application Software) เปนโปรแกรมทพฒนาขนมาเพอท างานอยางใดอยางหนงตามความตองการของผใชเปนหลก อกทงยงท างานอยบนซอฟตแวรระบบ เชน โปรแกรมประมวลผลค า (word processing programs) โปรแกรมตารางค านวณ (spreadsheets) โปรแกรมเงน เด อน (payroll programs) โปรแกรมคล งส นค า (inventory programs) และ โปรแกรมเกม เปนตน

3. สวนน าเขา (Input) เปนสงทน าเขาสระบบ เพอใหโปรแกรมน าไปประมวลผลใหไดผลลพธตามวตถประสงคทก าหนดไว ตวอยางขอมลน าเขา เชน ขอมลสนคา ลกคา และบคคล เปนตน ขอมลเหลานสามารถน าเขาในลกษณะของรปภาพ เสยง ขอความและตวเลข เกบไวในหนวยความจ าของคอมพวเตอร 4. กระบวนการ (Processing) การประมวลผลขอมลทน าเขาสระบบคอมพวเตอร ซงอาจประมวลผลเกยวกบการตรวจสอบความถกตองของขอมล การค านวณคาบางคา การจดเกบขอมลบางอยาง จากงานทกลาวมาขางตนจะเปนหนาทของฮารดแวรประเภทหนวยประมวลผลกลาง (CPU) 5. ผลลพธ (Output) หรอสงทน าออกจากกระบวนการเพอน าไปจดเกบไวในหนวยความจ าของเครองคอมพเตอรในลกษณะฐานขอมล มการสงตอไปยงกระบวนการถดไป หรอสงไปเครองพมพหรอจอภาพ เปนตน

โปรแกรมคอมพวเตอร เพอใหเขาใจถงการเขยนโปรแกรมคอมพวเตอรในหวขอนจงไดกลาวถงความหมาย

ภาษาคอมพวเตอร อลกอรทมดงมรายละเอยดตอไปน (รงทวา เสารสงห, 2546: 20-35; สานนท เจรญฉาย, 2544: 10-28; Joyce Farrell, 2013: 7-14) 1. ความหมายของโปรแกรมคอมพวเตอร

โปรแกรมคอมพวเตอร (computer program) หมายถง ชดของค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานตามทตองการ สวนการเขยนโปรแกรม (programming) หมายถง การเขยนชดค าสงดวยภาษาคอมพวเตอรภาษาใดภาษาหนง เพอใหคอมพวเตอรท างานตามโปรแกรมทเราเขยนขน ดงนนผเขยนโปรแกรม (programmer) จ าเปนตองเรยนรภาษาคอมพวเตอร แลวฝกทกษะการเขยนโปรแกรมดวยภาษาคอมพวเตอรทตองการใชงานใหเกดความช านาญ เพอใหสามารถเขยนโปรแกรมคอมพวเตอรไดอยางมประสทธภาพ

2. ภาษาคอมพวเตอร

ภาษาคอมพวเตอร (computer language) หมายถง สญลกษณทผคดพฒนาภาษาก าหนดขนมาเพอใชแทนค าสงสอสาร สงงานระหวางมนษยกบตวเครองคอมพวเตอรและอปกรณตอพวงอน ๆ (รงทวา เสารสงห, 2546: 25)

ภาษาคอมพวเตอร หมายถง ภาษาทใชสอสารกบเครองคอมพวเตอร และสามารถน ามาใชเขยนโปรแกรมคอมพวเตอรสงใหคอมพวเตอรท างานตามค าสงนนได

Page 23: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

5

2.1 ประเภทของภาษาคอมพวเตอร สามารถแยกได 4 ประเภทดงน 2.1.1 ภาษาเครอง (machine language) เปนภาษาทสามารถตดตอสอสารกบ

เครองคอมพวเตอรไดโดยตรง เพราะวาการเขยนค าสงและขอมลในภาษาเครองใชระบบเลขฐานสอง (binary number system) คอใชตวเลข 0 และ 1 ทเครองคอมพวเตอรสามารถเขาใจไดโดยไมตองแปล

ตวอยางเชน การบวกแทนดวยรหสทเปนภาษาเครองคอ 10101010 หรอ เลข 9 เปลยนเปนเลขฐานสอง 00001001 เปนตน

ขอเสยของภาษาเครอง คอ เครองคอมพวเตอรตางชนดกนมลกษณะการเขยนภาษาเครองทแตกตางกน และเกดความยงยากในการปรบปรงแกไข ท าใหเกดความไมสะดวกในการใชงาน ดงนนภาษาเครองจงไมเหมาะกบผเรมตนเขยนโปรแกรม

ขอดของภาษาเครอง คอ สามารถเขาถงตวเครองโดยตรงได โดยไมตองผานการแปลรหสเหมอนภาษาประเภทอน จงสามารถประมวลผลรหสค าสงไดอยางรวดเรว

2.1.2 ภาษาแอสเซมบล (assembly language) หรอภาษาสญลกษณ สามารถเรยกอกอยางวาภาษาระดบต า ซงเปนภาษาคอมพวเตอรทพฒนาขนมาเพอใหผเขยนโปรแกรมสามารถเขยนโปรแกรมตดตอกบคอมพวเตอรไดงายกวาภาษาเครอง สวนการเขยนค าสงในภาษาแอสเซมบลจะใชค ายอของภาษาองกฤษและอางถงต าแหนงทอยภายในคอมพวเตอรเปนสวนใหญ เชน เขยนค าสงภาษาแอสเซมบลในการบวกเลข 2 จ านวนคอ 8 กบ 10 ดงน

MOV AX, 8

MOV BX, 10

ADD AX, BX

2.1.3 ภาษาระดบสง (high level language) เปนภาษาทพฒนาตอเนองจากภาษาระดบต าทผเขยนโปรแกรมสามารถเขาใจไดงายกวาภาษาแอสเซมบลและภาษาเครอง ทงนกเพราะการเขยนค าสงของภาษาระดบสงมลกษณะเปนภาษาองกฤษ ซงอานแลวเขาใจไดงายกวาภาษาแอสเซมบล เชน ใชค าวา READ, WRITE, PRINT และ COMPUTE เปนตน ตวอยางของภาษาระดบสงไดแก ภาษาฟอรแทรน (FORTRAN) ภาษาโคบอล (COBOL) ภาษาเบสก (BASIC) ภาษาปาสคาล (PASCAL) และภาษาซ (C) เปนตน

2.1.4 ภาษาระดบสงมาก (very high level language) ภาษาระดบสงมาก

บางครงเรยกวา Fourth Generation Languages (4GLs) เปนภาษาทมลกษณะส าคญ คอ ผเขยนโปรแกรมไมตองบอกวธการท างานโดยละเอยด เพยงแตระบค าสงใหท างานสน ๆ ใหภาษาระดบสงมากเขาใจกพอ สวนวธการค านวณหรอการท างานภาษาระดบสงมากจะเปนผจดการเองทงสน

บางครงเรยกวา non-procedure language ตวอยางภาษาระดบสงมาก ไดแก ภาษาเอสควแอล (Structured Query Language : SQL) ซงนยมใชกนในซอรฟแวรระบบจดการฐานขอมล เชน

ORACLE, SQL Server และ MySQL เปนตน

Page 24: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

6 2.2 ตวแปลภาษาคอมพวเตอร (Translator Program) คอโปรแกรมส าหรบแปลภาษาท

พฒนาขนเปนภาษาเครองหรอแปลงเปนเลขฐานสอง จากการพฒนาภาษาคอมพวเตอรประเภทตางๆ ตงแตภาษาสญลกษณไปจนถงภาษาระดบสงมาก จะมการพฒนาโปรแกรมส าหรบแปลภาษาควบคไปดวย เพอใหเครองสามารถประมวลผลค าสงของภาษาคอมพวเตอรได ตวแปลภาษาสามารถแบงตามลกษณะการแปลไดดงน

2.2.1 โปรแกรมแปลภาษาแบบแอสเซมเบลอร (Assembler) เปนโปรแกรมทใชแปลค าสงในการเขยนโปรแกรมทพฒนาดวยภาษาแอสเซมบลเปนภาษาเครอง

2.2.2 โปรแกรมแปลภาษาแบบอนเตอรพรเทอร (Interpreter) ท าหนาทแปลโปรแกรมภาษาระดบสงเปนภาษาเครอง โดยจะแปลโปรแกรมทละประโยค เมอพบขอผดพลาดจะหยดท างาน เพอใหด าเนนการแกไขค าสงทผด จากนนจงจะเรมประมวลผลค าสงใหม

2.2.3 โปรแกรมแปลภาษาแบบคอมไพเลอร (Compiler) แปลโปรแกรมภาษาระดบสงเชนเดยวกบแบบอนเตอรพรเทอร แตเปนการแปลทงโปรแกรม ผลลพธการแปลทงโปรแกรมเรยกวา ออบเจคโคด (Object Code) หลงจากนนจงน าโปรแกรมดงกลาวเชอมโยงเขากบระบบเพอเปลเปนภาษาเครอง

3. อลกอรทม

การศกษาอลกอรทมใหเขาใจจะท าใหผเรยนสามารถน าไปประยกตในการเขยนโปรแกรมไดอยางเหมาะสมและมแนวทางการแกไขปญหา ซงมรายละเอยดของอลกอรทมดงน

3.1 ความหมายของอลกอรทม

ค าวา Algorithm มทมาจากชอของนกคณตศาสตรชาวเปอรเซยในยคศตวรรษท 9 อ ะบ อ บ ด ล ห าห บ น ม ซ า อ ล ค อ วาร ซ ม ย (Abu Abdillah Muhammad bin Musa al-

Khawarizmi) ค าวา al-Khawarizmi ไดเพยนเปน Algorithm เมองานเขยนของเขาไดรบการแปลเปนภาษาละตน แลวกลายเปน Algorithm ซงหมายถงกฎทใชในการคดค านวณเลขคณต และไดกลายมาเปนค าวา ขนตอนวธการ ในชวงศตวรรษท 18 ในปจจบนค านไดมความหมายทกวางขน โดยหมายรวมถงขนตอนวธการในการแกปญหาตางๆ

ราชบณฑตยสถาน ไดบญญตค าวา อลกอรทม เปนภาษาไทยวา ขนตอนวธ ซงมความหมายวา เปนล าดบของขนตอนการค านวณทใชแกปญหา โดยการเปลยนขอมลน าเขาของปญหา (input) ออกมาเปนผลลพธ (output) ขนตอนวธดงกลาวนนสามารถน ามาเขยนเปนโปรแกรมคอมพวเตอรได (ราชบณฑตยสถาน พ.ศ. 2546, 2546: 5)

อลกอรทม หรอ ขนตอนวธ หมายถง ขนตอนการประมวลผลหรอวธการท างานอยางใดอยางหนง ซงสามารถแบงออกเปนขนตอนยอย ๆ มการอธบายล าดบขนตอนการประมวลผลในลกษณะขอความเรมตงแตตนจนจบสนการท างาน อลกอรทมชวยใหนกเขยนโปรแกรมเหนขนตอน

Page 25: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

7 การเขยนโปรแกรมในการแกไขปญหาทชดเจนขน จากอลกอรทมสามารถแปลงเปนภาษาทางคอมพวเตอรเพอสงใหคอมพวเตอรท างานตามทตองการได

ตวอยางท 1.1 อลกอรทมของการเดนทางมาเรยนมดงน

1. หลงตนนอน อาบน า ลางหนา แปรงฟน

2. แตงตวมาเรยน

3. กนอาหารเชา

4. เดนทางมาเรยน

5. เขาหองเรยน

เมอไดปฏบตตามอลกอรทมดงกลาวแลวกสามารถเดนทางมาเรยนหนงสอได แตอลกอรทมทจะเดนทางมาเรยนนนมดวยกนหลายวธ ซงไมจ าเปนตองเหมอนกนกได นนหมายความวา อลกอรทมทใชในการแกไขปญหาทางคอมพวเตอรสามารถมไดหลายวธขนอยกบความเหมาะสมและแนวทางทคดวาดทสดในแตละสถานการณ อลกอรทมทใชในการแกไขปญหาทางคอมพวเตอรกไมตางจากอลกอรทมของการเดนทางมาเรยน แตจะตางกนตรงรปแบบของประโยคทใช โดยอลกอรทมทใชในการแกไขปญหาทางคอมพวเตอรจะเขยนเปนประโยคภาษาองกฤษทไมมรปแบบการเขยนทชดเจน

3.2 หลกการเขยนอลกอรทม

เพอใหไดอลกอรทมทสามารถน าไปใชไดอยางมประสทธภาพและเหมาะสม ดงนนจงมหลกการเขยนอลกอรทมพนฐานดงน

3.2.1 ภาษาทใชควรอานเขาใจงาย ไมก ากวม

3.2.2 มล าดบขนตอนการท างานกอน-หลง ทชดเจน

3.2.3 ไดผลลพธทถกตองเมอใชในการแกไขปญหา 3.2.4 สามารถประมวลผลดวยเครองคอมพวเตอรได 3.2.5 อลกอรทมตองมจดสนสด หลงจากด าเนนงานตามระยะเวลาทก าหนด

3.3 คณสมบตการท างานพนฐานของระบบคอมพวเตอร กอนทจะศกษาการเขยนอลกอรทม ควรมความเขาใจถงคณสมบตการท างานพนฐานของระบบคอมพวเตอรกอน เพอน าไปใชในการเขยนอลกอรทมไดถกตอง ซงระบบคอมพวเตอรมคณสมบตการท างานพนฐาน 5 ดานดงน

3.3.1 ดานหนวยความจ า ส าหรบการเขยนโปรแกรมคอมพวเตอรตองเกยวของกบการใชงานพนทในหนวยความจ าของระบบคอมพวเตอร ซงจะก าหนดเปนสญลกษณแทนพนทในหนวยความจ าเรยกวา ตวแปร โดยตวแปรนนจะใชอางองขอมลหรอพนทในหนวยความจ า เชน

Page 26: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

8 X= 10

จากประโยคขางตนเปนการก าหนดคา 10 เกบไวในพนทในหนวยความจ าทชอ X หรอตวแปร X

Total= Total + Sum

จากประโยคขางตนเปนการน าคาในตวแปร Sum ไปบวกเขากบคาในตวแปร Total แลวน าผลลพธทไดเกบไวทตวแปร Total ซงคาใหมทไดจะเกบทบคาเดมในตวแปร Total ค าสงประเภทนจะใชในการสะสมคา หรอเปลยนแปลงคาในตวแปรเดม

Tax = Salary * 0.07

จากประโยคขางตนเปนการน าคาทเกบไวในตวแปร Salary คณกบ 0.07 แลวน าผลลพธทไดเกบไวทตวแปร Tax

3.3.2 ดานการค านวณ ระบบคอมพวเตอรสามารถท าการบวก ลบ คณ หาร โดยจะพจารณาเลอกประมวลผลตามล าดบความส าคญของเครองหมายการค านวณทแสดงในนพจน เครองหมายการค านวณและล าดบความส าคญของการท างานดงแสดงตามตารางท 1.1

ตารางท 1.1 สญลกษณ ล าดบความส าคญของการท างานของเครองหมายการค านวณ

เครองหมายการค านวณ การท างาน ล าดบความส าคญของการท างาน

() วงเลบ 1 ** หรอ ˆ ยกก าลง 2

/ หาร 3 * คณ 3 - ลบ 4 + บวก 4

โดยจะด าเนนการในวงเลบกอน ตอดวยยกก าลง หรอกรณทล าดบความส าคญเทากน เชน การหาร และการคณ จะด าเนนการจากซายไปขวา เปนตน

3.3.3 ดานการเปรยบเทยบเชงตรรกะ ระบบคอมพวเตอรมความสามารถในการประมวลผลเชงเปรยบเทยบ โดยพจารณาเงอนไขตามหลกการทางพชคณต เพอก าหนดทางเลอกการท างาน หรอตดสนใจวาหากเงอนไขเปนจรงจะใหด าเนนการค าสงใด กรณเปนเทจใหด าเนนการค าสงใด ดงนนในการเขยนโปรแกรมคอมพวเตอรจะตองศกษาวธใชสญลกษณในการเขยนประโยคค าสงแบบเงอนไขของแตละภาษาคอมพวเตอรทก าหนดใหเลอกใช สญลกษณพชคณตในการเขยนประโยคค าสงเงอนไขดงน = (เทากบ), > (มากกวา), < (นอยกวา), <= (นอยกวาหรอเทากบ), >= (มากกวาหรอเทากบ), <> (ไมเทากบ) เปนตวอยาง 1.2 การน าสญลกษณพชคณตไปใชงาน

Page 27: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

9 ตวอยาง 1.2 การเขยนนพจน

Sex= Female

IF (Sex = Male)

Discount = Total* 0.05

Else

Discount = Total* 0.02

End IF

จากนพจนขางตน ก าหนดใหตวแปร Sex มคาเทากบ Female มประโยคค าสงเงอนไขคอ Sex=Male (ถามวาเปนผชายหรอไม) และประโยคส าหรบสงใหท างานม 2 กรณ คอถาเปนจรงใหท าประโยคค าสง Discount = Total*0.05 (มสวนลดส าหรบผชาย 5%) และถาเปนเทจใหท าประโยคค าสง Discount = Total*0.02 (มสวนลดส าหรบผหญง 2%)

สวนสญลกษณพชคณตทใชเชอมประโยคค าสงเงอนไข จะตองใชสญลกษณเพมเตม เพอใหไดขอสรปการท างานวาเปนจรงหรอเปนเทจ สมมตให X และ Y เปนผลลพธของการเปรยบเทยบประโยคค าสงเงอนไข และตองการหาขอสรปของการท างาน โดยจะน าหลกการทางพชคณตแบบบลนมาพจารณาดงตารางท 1.2

ตารางท 1.2 ผลลพธของการเปรยบเทยบประโยคค าสงเงอนไขตามหลกการทางพชคณตแบบบลน

X Y X AND Y X OR Y NOT X T T F F

T F T F

T F F F

T T T F

F F T T

ตวอยาง 1.3 การเขยนนพจนทใชเชอมประโยคค าสงเงอนไข

Sex= Female, Total= 500

IF (Sex = Male) AND (Total > = 1000)

Discount = Total* 0.05

Else

Discount = Total* 0.02

End IF

NetTotal= Total-Discount

Write NetTotal

ค าสงเงอนไข

ค าสงเงอนไข

ค าเชอมประโยค

ค าสงเงอนไข

Page 28: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

10 จากนพจนขางตน ก าหนดใหตวแปร Sex มคาเทากบ Female และตวแปร Total

มคาเทากบ 500 มประโยคค าสงเงอนไขคอ Sex=Male (ถามวาเปนผชายหรอไม) และ Total

>=1000 (คาทเกบไวในตวแปร total มคามากกวาหรอเทากบ 1000 หรอไม) โดยใช “AND” เชอมทง 2 ประโยคค าสงเงอนไข สวนประโยคส าหรบสงใหท างานม 2 กรณ คอถาเปนจรงทง 2 เงอนไขใหท าประโยคค าสง Discount = Total*0.05 (มสวนลดให 5%) และถาเปนเทจเงอนไขใดเงอนไขหนงใหท าประโยคค าสง Discount = Total*0.02 (มสวนลดให 2%) แลวเกบคาสวนลดไวในตวแปร Discount จากนนน าสวดลดไปค านวณหาคาใหตวแปร NetTotal นนคอ Total-Discount แลวแสดงคาตวแปร NetTotal ดวยค าสง Write

3.3.4 ดานการแสดงคาขอมล ระบบคอมพวเตอรจะอานคาขอมลจากตวแปรหรอพนทในหนวยความจ าทไดเขยนค าสงน าคาขอมลหรอคาขอมลทไดจากการค านวณนนไปเกบไว มาแสดงผลลพธในรปแบบหรอต าแหนงทตองการ

3.3.5 ดานการจดล าดบการท างาน ระบบคอมพวเตอรมการท างานทละค าสง ตามล าดบจากบนลงลาง (1 บรรทด คอ 1 ค าสง) โดยจะท างานตามค าสงทอยบรรทดบนสดกอน แลวท าค าสงในบรรทดถดไป จนถงค าสงบรรทดสดทาย

3.4 ลกษณะการเขยนอลกอรทม

การเขยนอลกอรทมสามารถเขยนออกมาในรปแบบของรหสเทยม (Pseudo Code)

หรอผงงาน (Flow Chart) โดยผงงานจะแสดงขนตอนการท างานท ใชสญลกษณรปภาพแทนความหมายตางๆ และใชลกศรก าหนดทศทางการด าเนนงาน สวนรหสเทยมคอการน าภาษาธรรมชาตมาใชรวมกบภาษาโปรแกรมชนสง สวนมาตรฐานของไวยากรณนนมรปแบบค าสงทไมชดเจน ท าใหรปแบบการเขยนรหสเทยมแตกตางกนขนอยกบผเขยน ในการใชงานจรงๆ รหสเทยมมกถกน ามาใชเปนตวแทนของอลกอรทม เพราะเขยนงายและเขาใจมากกวาผงงาน ซงหลกวธการเขยนรหสเทยมนนจะใชหลกการเดยวกบหลกการเขยนอลกอรทมทไดกลาวไวกอนหนา

3.4.1 การเขยนอลกอรทมในรปแบบรหสเทยม อลกอรทมในรปแบบรหสเทยมสามารถน าปฏบตการพนฐานของระบบคอมพวเตอรมาใชในการเขยนได ซงมรายละเอยดของปฏบตการพนฐานดงน

3.4.1.1 การรบขอมล ระบบคอมพวเตอรสามารถรบขอมลจากอปกรณอนพตขอมลเชน เมาท คยบอรด และอานจากไฟลขอมล เปนตน สามารถใชค าตางๆ เชน read หรอ get ในการเขยนรหสเทยม ซงจะใช read เมอตองการอานรายการจากไฟลหรอฐานขอมล สวน get จะใชรบขอมลจากคยบอรด เชน

Page 29: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

11 Read employeeName, Address

จากประโยคขางตนเปนการอานขอมล employeeName และ Address

Get N, Discount ,Sex

จากประโยคขางตนเปนการรบขอมลจากอปกรณอนพตมาเกบไวในตวแปร N,

Discount และ Sex

Read Salary

จากประโยคขางตนเปนการอานขอมล Salary

3.4.1.2 การแสดงผลลพธ ในการเขยนรหสเทยมทตองการแสดงผลลพธ ซงระบบคอมพวเตอรมการแสดงผลลพธหลายรปแบบ ซงค ากรยาทใชในการเขยนค าสงในรหสเทยมมดงน print, write, output, display โดย print ใชส าหรบแสดงผลลพธออกทางเครองพมพ write

ใชส าหรบแสดงผลลพธเมอตองการจดเกบลงในไฟลขอมล ฐานขอมล หรอตวแปร สวน output หรอ display ใชส าหรบแสดงผลลพธออกทางหนาจอ เชน

Print “Result is 88”

เปนประโยคสงใหแสดงขอความ “Result is 88” ออกทางเครองพมพ

Write Student record to student file

เปนประโยคสงใหจดเกบขอมลนกเรยนลงในไฟล student

Output “My name is Tom”

เปนประโยคสงใหแสดงขอความ “My name is Tom” ออกทางหนาจอ

Display “My name is Jone”

เปนประโยคสงใหแสดงขอความ “My name is Jone” ออกทางหนาจอ

3.4.1.3 การค านวณ โปรแกรมคอมพวเตอรสวนมากตองการใหค านวณสตรทางคณตศาสตร ซงสญลกษณทใชค านวณมดงน

+ ใชแทนการบวก (Add)

- ใชแทนการลบ (Subtract)

* ใชแทนการคณ (Multiply)

/ ใชแทนการหาร (Divide)

Page 30: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

12 () ใชแทนเครองหมายวงเลบ (Parenthesis)

ส าหรบค ากรยาทใชแทนการค านวณสามารถใช compute หรอ calculate

แตสามารถเลยงโดยการเขยนเปนสตรค านวณทางคณตศาสตรไดเชนกน เชน

Compute taxTotal = NetTotal* 0.07

จากประโยคขางตนเปนค าสงใหน าคาในตวแปร NetTotal คณกบ 0.07 แลวน าผลลพธไปเกบไวในตวแปร taxTotal และสามารถเขยนเปนอกรปแบบหนงได เชน

taxTotal = NetTotal* 0.07

ถาสตรการค านวณคอนขางซบซอนและตองการใหผลการค านวณถกตองใหใชเครองหมายวงเลบชวยจดล าดบการค านวณ

3.4.1.4 การก าหนดคาตวแปร ในการเขยนรหสเทยมสามารถก าหนดตวแปรไดหลายรปแบบ ไมวาจะเปนการใชค ากรยา initialize หรอ set ในการก าหนดคาเรมตนใหกบตวแปร และยงสามารถใชเครองหมาย = เพอก าหนดคาใหกบตวแปร ตวอยางเชน

Set NetTotal to 0

จากประโยคขางตนเปนการก าหนดเรมตนใหกบตวแปร NetTotal มคาเทากบ 0

Init ialize PriceTotal to 0

จากประโยคขางตนเปนการก าหนดเรมตนใหกบตวแปร PriceTotal มคาเทากบ 0

N= 0

จากประโยคขางตนเปนการก าหนดเรมตนใหกบตวแปร N มคาเทากบ 0

K= 1

จากประโยคขางตนเปนการก าหนดเรมตนใหกบตวแปร K มคาเทากบ 0

3.4.1.5 การก าหนดเงอนไข กรณโปรแกรมทสรางขนตองการเปรยบเทยบ หรอก าหนดเงอนไขเพอเลอกทางเลอกใดทางเลอกหนงภายในรหสเทยมจะใชค าสงเฉพาะคอ

if (เงอนไข) then ด ำเนนกำรกรณจรง else ด ำเนนกำรกรณเทจ end if

โดยใหระบเงอนไขในการเปรยบเทยบหลง if เมอมการเปรยบเทยบเงอนไขแลว หากผลของเงอนไขเปนจรงจะด าเนนการค าสงทอยหลง then และผลของเงอนไขเปนเทจจะด าเนนการค าสงทอยหลง else โดยขอบเขตของประโยคการตรวจสอบเงอนไขจะลงทายดวย end if

Page 31: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

13 เสมอ เชน ตองการนบจ านวนของผชายและผหญง โดยจะตองตรวจสอบเงอนไขกอนวา คนทตองการนบเปนเพศชายหรอไม ถาใชใหด าเนนการหลงค าสง then โดยเพมคา 1 ใหกบตวแปร manCount

ถาไมใชใหท าค าสงหลง else คอ เพมคา 1 ใหกบตวแปร femaleCount สามารถเขยนเปนรหสเทยมไดดงน

I f sex is man then

Add 1 to manCount

Else

Add 1 to femaleCount

End if

3.4.1.6 การใชในลกษณะวนซ า คอการประมวลผลขนตอนการท างานซ าๆ สามารถใชค าเฉพาะคอ Dowhile ……….. Enddo เชน ตองการอานรายการขอมลพนกงานในไฟลเพอพมพรายงาน จนกระทงจบไฟล สามารถเขยนเปนรหสเทยมไดดงน

Dowhile not end of file

Read employee record

Print emp_fname,emp_lname,address to report

Enddo

ตวอยาง 1.4 อลกอรทมของการค านวณเกรด โดยใชเงอนไขในการค านวณดงน

คะแนน เกรด นอยกวา 50 F ระหวาง 50 ถง 54 D ระหวาง 55 ถง 59 D+ ระหวาง 60 ถง 64 C ระหวาง 65 ถง 69 C+ ระหวาง 70 ถง 74 B ระหวาง 75 ถง 79 B+ 80 ขนไป A

ประโยคเงอนไข ด าเนนการกรณเปนจรง

ด าเนนการกรณเปนเทจ

ประโยคเงอนไขในการท างาน

ด าเนนการซ ากรณเปนจรง

Page 32: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

14 ตามตารางเงอนไขขางตนน ามาพจารณาเขยนอลกอรทมของการค านวณเกรด โดยมการ

ท างานตามล าดบ ยกเวนอลกอรทมในบางขออาจมการก าหนดใหไปท างานทขออน ซงสามารถขามไปท างานทขอนนไดเลย ดงน

get score of student

if score < 50 then

write “grade is F”

else if score < 55 then

write “grad is D”

else if score < 60 then

write “grade is D+”

else if score < 65 then

write “grade is C”

else if score < 70 then

write “grade is C+”

else if score < 75 then

write “grade is B”

else if score < 80 then

write “grade is B+”

else

write “grade is A”

end if

3.4.2 การเขยนอลกอรทมในรปแบบผงงาน อลกอรทมนอกจากจะเขยนในรปแบบของรหสเทยมแลว ยงสามารถเขยนในรปแบบผงงานทใชสญลกษณรปภาพแสดงขนตอนการท างาน ประเภทของผงงานสามารถจ าแนกออกได 2 ประเภทดงน

3.4.2.1 ผงงานระบบ (system flowchart) หมายถง ผงงานทแสดงถงขนตอนวธการท างานของระบบงานใดระบบหนง ซงในผงงานระบบจะแสดงใหเหนถงสอทใชรบขอมล บนทกขอมล วธการประมวลผล ขนตอนการท างานและความสมพนธของสวนตาง ๆ ในระบบงานอยางกวาง ๆ เพอใหเหนภาพรวมของระบบงานใดระบบงานหนง เชน

ภาพท 1.1 ผงงานระบบการสรางใบก ากบสนคา

สรางใบก ากบสนคา

รายละเอยดการสงซอ รายละเอยดใบก ากบสนคา

รายงานใบก ากบสนคา

ขอมลลกคา

ขอมลสนคา

ถา score มคานอยกวา 60 ใหแสดง grade is D+

ถา score มคานอยกวา 55 ใหแสดง grade is D

ถา score มคานอยกวา 65 ใหแสดง grade is C

ถา score มคานอยกวา 50 ใหแสดง grade is F

ถา score มคานอยกวา 70 ใหแสดง grade is C+

ถา score มคาไมตรงเงอนไขใดเลยใหแสดง grade is A

ถา score มคานอยกวา 80 ใหแสดง grade is B+

ถา score มคานอยกวา 75 ใหแสดง grade is B

Page 33: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

15 จากภาพระบบการสรางใบก ากบสนคา ประกอบดวยขอมลทน าเขาคอ รายละเอยด

การสงซอผานหนาจอ ไฟลขอมลลกคาและสนคา สวนขอมลผลลพธจะแสดงรายละเอยดใบก ากบสนคาทางหนาจอ และออกรายงานใบก ากบสนคาทางเครองพมพ

3.4.2.2 ผงงานโปรแกรม (program flowchart) หมายถงผงงานทแสดงขนตอน วธการท างานของโปรแกรมทตองการเขยน ภายในผงงานโปรแกรมจะแสดงใหเหนขนตอน วธการท างานของโปรแกรมอยางละเอยด เพอใหคอมพวเตอรสามารถท างานตามทเขยนไวในผงงานโปรแกรมไดอยางถกตอง โดยเราสามารถน าขนตอนวธการท างานของโปรแกรมในขนการวเคราะหงาน มาเขยนเปนผงงานโปรแกรมไดทนท จากนนกสามารถน าผงงานโปรแกรมไปเขยนโปรแกรมดวยภาษาโปรแกรมคอมพวเตอรทถนด ตวอยางภาพท 1.2 แสดงผงงานโปรแกรม

ภาพท 1.2 ผงงานโปรแกรมส าหรบหาผลรวมของตวแปร a, b และ c แลวเกบไวในตวแปร sum จากนนน าคาจากตวแปร sum แสดงออกทางหนาจอ

สญลกษณมาตรฐานทใชเขยนผงงานโปรแกรม โดยสถาบนมาตรฐานแหงชาตของสหรฐอเมรกา (American National Standard Institute) และองคกรระหวางประเทศวาดวยการมาตรฐาน (International Organization for Standardization) ได รวมกนก าหนดสญลกษณมาตรฐานทใชเขยนผงงานโปรแกรม โดยสญลกษณทนยมน ามาใชในเขยนผงงานโปรแกรม มรายละเอยดตามตารางท 1.3

Start

Read a,b,c

Sum=0

Sum=a + b + c

Write sum

Stop

Page 34: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

16 ตารางท 1.3 สญลกษณมาตรฐานในการเขยนผงงานโปรแกรม

สญลกษณ/ชอเรยก หนาท การใชงาน

Terminal/Interrupt (เรมตน/สนสด)

แสดงจดเรมตนหรอสนสดของผงงาน ซงผงงานจะตองมจดเรมตนและสนสดเพยงจดเดยวเทานน

แสดงจดเรมตนหรอสนสดของผงงานโปรแกรม

Assignment(การก าหนดคา) Computation (การค านวณ) Process (การประมวลผล)

แสดงการประมวลผล การก าหนดคา และการค านวณ

เปนการก าหนดคาใหกบตวแปร x มคาเปน 1

Input (การน าขอมลเขา) Output (การน าขอมลออก)

การรบขอมลเขา หรอการแสดงขอมลทไมไดก าหนดอปกรณในการรบคา

รบขอมลมาเกบไวทตวแปร N

Input (การน าขอมลเขา)

การรบขอมลเขาทางแปนพมพ (keyboard) หรอดวยตนเอง

รบขอมลมาเกบไวทตวแปร X,Y

Display (การแสดงคาขอมลออกทางจอภาพ)

แสดงคาขอมลออกทางจอภาพ

แสดงค าวา “ผลรวมเปน” ตามดวยคาทเกบในตวแปร sum ออกทางจอภาพ

Start

Stop

X=1

Read N

Read X,Y

“ผลรวมเปน ”

sum

Page 35: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

17 สญลกษณ/ชอเรยก หนาท การใชงาน

Document(การแสดงคาขอมลออกในรปเอกสารหรอทางเครองพมพ)

แสดงคาขอมลออกทางเครองพมพหรอในรปเอกสาร

แสดงค าวา “ผลรวมเปน” ตามดวยคาทเกบในตวแปร sum ออกในรปเอกสาร

Decision(การตดสนใจ หรอการเปรยบเทยบ)

ใชส าหรบการตดสนใจเลอกท าอยางใดอยางหนง หรอการเปรยบเทยบ

พจารณาคาทเกบในตวแปร Sex ถามคาเปน M ใหท าขนตอนในทศทางดาน Y และถาคาในตวแปร Sex ไม เปน M ใหท าขนตอนทอยดาน N

Flowchart Connector (จดเชอมตอผงงาน)

จดเชอมตอผงงานในหนาเดยวกน หรอเชอมตอ กรณขนตอนการท างาน 2 ขนตอนเชอมตอกนเพอท าขนตอนเดยวกน

ผงงานดานซายมอเขยนยงไมเสรจแตหนากระดาษไมพอเขยนใหใชสญลกษณจดเชอมตอ ก าหนดชอใหจดเชอมคอ 1 จากนนเรมตนเขยนผงงานตอทางดานขวามอ โดยใหเรมตนดวยจดเชอมตอทชอ 1 แลวตามดวยขนตอนการท างานถดไป

Flowchart Off Page Connector

จดเชอมตอผงงานทอยคนละหนา

ผงงานทเขยนในหนาแรกซงเขยนยงไมเสรจใหใชสญลกษณจดเชอมตอคนละหนา แลวก าหนดชอใหจดเชอมคอ 1

“ผลรวมเปน ” sum

Sex=’M’ Y N

1

1

1

1

Page 36: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

18 สญลกษณ/ชอเรยก หนาท การใชงาน

จากนนเรมตนเขยนผงงานในหนาใหม โดยใหเรมตนดวยจดเชอมตอทชอ 1 แลวตามดวยขนตอนการท างานถดไป

Arrow(ลกศร)

ลกศรแสดงทศทางการไหลของผงงาน

แสดงทศทางการไหลของขนตอนการท างานในผงงานจากบนลงลาง

Call Procedure (การเรยนใชโปรแกรมยอย)

การเรยกใชโปรแกรมยอย จากผงงานเปนการเรยนใชโปรแกรมยอยทชอ Sum

File or Database (ไฟลหรอฐานขอมล)

แหลงเกบขอมลหรอหนวยความจ าส ารอง

นยมน าไปใชในการเขยนผงงานแบบผงงานระบบ จากรปเปน

Start

Read N

Start

Read N

Call Procedure

Sum

Student

file

Read student data

Page 37: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

19 สญลกษณ/ชอเรยก หนาท การใชงาน

การอานขอมลของนกศกษาเพอน าไปเกบไวทไฟลขอมลนกศกษา (student file)

จากสญลกษณทแสดงในตารางขางตน จ าเปนตองเลอกใชใหเหมาะสมตามขนตอนหรอวธการประมวลผลทวเคราะหงานไวแลวเพอน าไปเขยนเปนผงงาน โดยมการพจารณาล าดบกอนหลงของการท างานเพอจดล าดบภาพของผงงานใหเหมาะสม ซงการเขยนผงงานมล าดบในการเขยนดงน

1) การก าหนดคาเรมตน ตวแปรตางๆ ทใชในผงงานจะตองมการก าหนดคาเรมตน 2) การรบขอมลเขา ใหพจารณาขอมลทจะรบเขามาประมวลผลในโปรแกรม แลว

น าคาดงกลาวไปเกบไวในตวแปรทไดก าหนดเอาไว 3) การประมวลผล เปนการประมวลผลหรอค านวณตางๆ ทตองท าตามล าดบ

ขนตอนการท างานของโปรแกรมทไดวเคราะหไวแลว 4) การแสดงผลลพธ หลงจากทท าการประมวลผลหรอค านวณตางๆ แลวตองการ

แสดงผลลพธทได ซงสามารถแสดงทางจอภาพหรอทางเครองพมพ(เอกสาร)

ขอสงเกตเพมเตม 1) ผงงานใดๆ จะมจดเรมตนและสนสดเพยงแหงเดยว

2) ทศทางล าดบขนตอนการท างานเขยนจากซายไปขวา หรอจากบนลงลาง 3) ทกสญลกษณทใชจะมทศทางเขาและออกเพยง 1 แหงเทานน ยกเวนจดเรมตน

จดสนสด จดเชอมตอ และการตดสนใจ 4) หลกเลยงการเขยนเสนโยงไปมาในลกษณะตดกน กรณจ าเปนตองโยงเสนตดกน

ใหใชจดเชอมตอแทน 5) ทกสญลกษณทใชจะตองมลกศรก ากบทศทางการไหลการท างาน 6) ใชค าอธบายการท างานทสนและเขาใจงาย ควรเขยนใหอยในสญลกษณทเลอกใช

กรณทตองการอธบายเพมเตมใหเขยนไวบนสญลกษณดานขวา 7) ผงงานทเขยนจะตองสะอาด เปนระเบยบเรยบรอย

ตอไปนเปนตวอยางการเขยนผงงาน เพอใหเขาใจและสามารถเขยนผงงานไดอยางมประสทธภาพ

Page 38: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

20 ตวอยาง 1.5 ผงงานแสดงการหาผลรวมของตวเลข a, b ซงเปนผงงานแบบล าดบ

ภาพท 1.3 ผงงานโปรแกรมแสดงการหาผลรวมตวเลข 2 จ านวน

จากผงงานขางตนสามารถอธบายขนตอนการท างานไดดงน 1. เรมตน 2. รบคาตวเลข 2 คามาเกบไวทตวแปร a และ b 3. ก าหนดคาเรมตนใหกบตวแปร sum 4. ค านวณผลรวมของตวแปร a และ b แลวน ามาเกบไวทตวแปร sum 5. แสดงผลลพธจากการค านวณ ซงเกบไวทตวแปร sum ออกทางจอภาพ 6. จบการท างาน

Start

Sum=a + b

Stop

Sum=0

Read a, b

Write sum

Start

Read a,b

Sum= 0

Sum= a+ b

Write sum

Stop

เขยนเปนรหสเทยมดงน

Page 39: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

21 ตวอยาง 1.6 ผงงานแสดงแบบใหเลอกท าหรอเปรยบเทยบทเกยวกบการวดผลการเรยนของนกเรยน

ภาพท 1.4 ผงงานโปรแกรมแสดงการวดผลการเรยนของนกเรยน

จากผงงานขางตนสามารถอธบายขนตอนการท างานไดดงน 1. เรมตน 2. รบคะแนนของนกเรยนมาเกบไวทตวแปร Score 3. ถา Score >= 60 แลว

a. พมพขอความวา “สอบผาน” มฉะนนแลว b. พมพขอความวา “สอบไมผาน”

4. จบการท างาน

Start

Read Score

I f Score> = 60 then

Write “สอบผำน” Else

Write “สอบไมผำน” End IF

Stop

เขยนเปนรหสเทยมดงน

Stop

Score>=60

Y N

Write “สอบไมผาน” Write “สอบผาน”

Start

Read Score

Page 40: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

22 ตวอยาง 1.7 ผงงานแสดงแบบวนรอบการท างานหรอท าซ าแบบท าในขณะท (Do While)

ภาพท 1.5 ผงงานโปรแกรมใหแสดงคาทเกบในตวแปร N

จากผงงานแสดงตวเลขทเกบในตวแปร N ออกทางอปกรณทไมไดระบ โดยใหแสดงตวเลขไปเรอยๆ จนกวาคาของ N จะนอยกวา 0 สามารถอธบายขนตอนการท างานไดดงน

1. เรมตน 2. รบคาตวเลขมาเกบไวทตวแปร N 3. ในขณะทคาทเกบในตวแปร N มากกวาหรอเทากบ 0 แลวท า

a. แสดงคา N b. N=N-1 (ท าการลดคาของ N ลง 1 แลวเกบคาไวทตวแปร N

เหมอนเดม) 4. จบการท างาน

ในการเขยนผงงานแบบวนรอบการท างานสามารถใชค าวา ในขณะท แลวตามดวยเงอนไขในการตดสนใจวาจะท าหรอไม แลวตามดวยค าวา แลวท ำ จากนนเปนขนตอนการท างาน สามารถเรยกการท าซ าหรอวนรอบแบบนวา Do While นอกจากนยงสามารถเขยนรหสเทยมแบบวนรอบอกแบบไดคอ Do Until (ท าจนกระทง) ดงตวอยาง 1.8

Stop

Read N

N

Y

Write N

Start

N=N-1

N >=0

Start

Read N

Do While N> = 0

Write N

N= N-1

End Do

Stop

เขยนเปนรหสเทยมดงน

Page 41: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

23 ตวอยาง 1.8 ผงงานแสดงการวนรอบการท างานหรอท าซ าแบบจนกระทงวา (Do Until)

ภาพท 1.6 ผงงานโปรแกรมแสดงผลรวมของตวเลขตงแต 1 ถง N

จากผงงานแสดงผลรวมตวเลขตงแต 1 ถงตวเลขทเกบไวในตวแปร N สามารถอธบายไดดงน

1. เรมตน 2. รบคาตวเลขมาเกบไวทตวแปร N ก าหนดคาเรมตนใหตวแปร Sum เทากบ 0 3. ท าจนกระทง คาทเกบในตวแปร N มคานอยกวา 1

3.1 บวกคาทเกบในตวแปร N กบคาในตวแปร Sum แลวเกบไวทตวแปร Sum 3.2 N=N-1 (ท าการลดคาของ N ลง 1 แลวเกบคาไวทตวแปร N)

4 แสดงขอความ “Summary is” และคาในตวแปร Sum 5 จบการท างาน

Read N

N

Start

Stop

N <1 Y

Write “Summary is” Sum

Sum=Sum + N

N=N-1

Sum=0

Start

Read N

Sum = 0

Do

Sum= Sum+ N

N= N-1

Until N< 1

Write “Summary is” Sum

Stop

เขยนเปนรหสเทยมดงน

Page 42: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

24 4. ขนตอนการเขยนโปรแกรม

กอนทจะเขยนโปรแกรมคอมพวเตอรภาษาใดภาษาหนงเพอแกปญหาทางคอมพวเตอร ควรมการศกษาขนตอนวธการทางคอมพวเตอร เพอใหเกดความรความเขาใจทถกตองตามขนตอนวธการพฒนาหรอเขยนโปรแกรม ซงมขนตอนการท างานดงน (ณฐพงษ วารประเสรฐ และ สธ พงศาสกลชย, 2552: 15-20)

4.1 การวเคราะหปญหา ขนตอนนตองกระท าอยางระมดระวงและละเอยด โดยจะตองศกษาปญหาจนเขาใจถง

แกนของปญหาจรงๆ จ าเปนตองอานทบทวนหลายๆ รอบ แลวตความถงความตองการทแทจรงของปญหาทเกด เพอใหไดกระบวนการท างานทจะน าไปใชในการแกไขปญหาอยางมประสทธภาพ การวเคราะหปญหาโดยปกตประกอบดวย 3 สวน ดงภาพท 1.7 ซงมรายละเอยดดงน

ภาพท 1.7 ขนตอนการวเคราะหปญหา

4.1.1 สวนขอมลน าเขา (Input) คอ ขอมลทจะน ามาใชในการประมวลผลเพอใหไดผลลพธทตองการมอะไรบาง โดยพจารณาจากผลลพธของโปรแกรม และตองค านงถงขนตอนวธการท างาน ขอมลทจ าเปนตองใสเขาไปเพอใหไดผลลพธดงกลาว ซงเราสามารถระบขอมลน าเขาไดหลายแนวทาง เชน ก าหนดลงในโปรแกรมโดยตรง ผเขยนโปรแกรมเปนผก าหนด หรอรบขอมลน าเขาจากแปนพมพหรอไฟลขอมล เปนตน

4.1.2 สวนผลลพธ (Output) คอ รปแบบของผลลพธทตองการ สามารถมไดหลายผลลพธหรอมเพยงผลลพธเดยวกได ส าหรบคาทเปนไปไดของผลลพธอาจจะเปนตวเลข ขอความ ตาราง หรอคาทางตรรกะ (จรงหรอเทจ) ขนอยกบผเขยนโปรแกรม แตสวนมากการแสดงผลลพธจะตองอยในรปแบบทเขาใจงายไมซบซอน

4.1.3 สวนการประมวลผล (Process) คอ ขนตอนการท างานตางๆ ทางคอมพวเตอร เพอใหไดผลลพธตามทตองการ ส าหรบการประมวลผลทางคอมพวเตอรจ าเปนตองมการก าหนดตวแปรเพอน ามาใชประมวลผลในโปรแกรม ซงตวแปรจะเปนชอทผเขยนโปรแกรมตงขนมาเองตามหลกการตงชอตวแปรของภาษาคอมพวเตอรทน ามาเขยนโปรแกรม โดยตวแปรตงขนมาเพอใชในการอางองการเกบขอมลในหนวยความจ าและเรยกใชขอมลทเกบภายในตวแปรนนๆ ดงนนผเขยนโปรแกรมจะตองตงชอตวแปรทใชในการเกบขอมลทงหมดทใชในโปรแกรม ไมวาจะเปนขอมลน าเขา ผลลพธ หรอตวแปรบางตวทใชในการนบจ านวนรอบของการท างานในโปรแกรมซงจะเกดขนบางกรณ

2.Process 3.Output 1.Input

Page 43: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

25 ตวอยาง 1.9 ปญหาการบวกเลข 2 จ านวน สามารถสรปการวเคราะหปญหาได ดงน

ขนตอนท 1 วเคราะหสวนประกอบทง 3 สวนคอ สวนขอมลน าเขา (input) สวนผลลพธ (output)

และสวนการประมวลผล (process) วาแตละสวนประกอบดวยอะไรบาง ขนตอนท 2 พจารณาขนตอนการท างานหรอ process วาประกอบดวยขนตอนอะไรบางอยางละเอยด ขนตอนท 3 สรปผลการวเคราะหปญหา ดงแสดงไวในตารางท 1.4 ดงน

ตารางท 1.4 ตวอยางการวเคราะหปญหาการบวกเลข 2 จ านวน

Input Process Output ตวเลขทจะน ามาบวกกน 2 จ านวน จากนนก าหนดตวแปร 2 ตวแปร เพอเกบคาตวเลข

1. อานหรอรบคาขอมลตวเลข 2 จ านวนและเกบไวในตวแปรทก าหนด

2. บวกตวเลขทง 2 3. แสดงผลรวม ตามรปแบบท

ผเขยนโปรแกรมก าหนด

ผลรวมของทง 2 ตวเลข ตองมการก าหนดตวแปรส าหรบเกบผลรวม

4.2 การเขยนอลกอรทม

การเขยนอลกอรทมเปนการน าเสนอขนตอนวธการแกไขปญหาใหกบผทเกยวของไดเขาใจวธการอยางคราวๆ ทใชในการแกไขปญหาทไดออกแบบไว จากหวขอกอนหนานไดอธบายวธการเขยนอลกอรทมไวแลว ผเขยนโปรแกรมสามารถศกษาท าความเขาใจกอนลงมอเขยนอลกอรทม จากนนน าผลลพธทไดจากขนตอนการวเคราะหปญหามาเขยนอลกอรทม โดยพจารณาจากสวนของการประมวลผล (process) เปนหลก ซงผเขยนโปรแกรมสามารถเขยนอลกอรทมออกมาในรปแบบของรหสเทยมหรอผงงานโปรแกรมกไดขนอยกบความถนดของผเขยนโปรแกรมแตละคน

4.3 การเขยนโปรแกรม

การเขยนโปรแกรมเปนการน าอลกอรทมมาเขยนใหอยในรปแบบของชดค าสงของภาษาคอมพวเตอร ซงมวธการออกแบบโปรแกรมทอาศยหลกการพนฐานเกยวกบการรบขอมล ประมวลผล และแสดงผลลพธดงน 4.3.1 การออกแบบโปรแกรมแบบ Procedure-Driven ซงมแนวคดวากระบวนการ (Procedure) หรอฟงกชน (Function) อะไรบางทตองกระท า แตละกระบวนการจะมการไหลของขอมลเขาและขอมลออกอะไรบาง โดยแตกการท างานเหลานนออกเปนสวนๆ สวนรายละเอยดของโครงสรางทแทจรงของขอมลจะน ามาพจารณาทหลงจนกวาจะก าหนดการท างานแลว

4.3.2 การออกแบบโปรแกรมแบบ Event-Driven อาศยแนวคดของแตละเหตการณหรอการโตตอบจากภายนอกเปนส าคญ ทสงผลกระทบตอโปรแกรมในดานของการเปลยนแปลงในแตละสถานะ โดยสถานะเรมตนของโปรแกรมจะถกก าหนดขนมาเพอใชเปนตวแทนในการน าเสนอตอ

Page 44: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

26 เหตการณในขณะนน แตละเหตการณจะสงผลตอการเปลยนแปลงโปรแกรมทเกดขนในแตละสถานะ ซงท าใหปรากฏเหตการณในล าดบถดไปตามแตละสถานะ เชน เมอผใชตดสนใจกดปมเมาสดานซาย ดานขวา กดปมเมาส 2 ครง และลากเมาส เปนตน ซงแตละเหตการณทผใชกระท าจะสงผลใหเกดล าดบเหตการณทแตกตางกน กลาวคอ ผลของโปรแกรมจะขนอยกบสถานะทผใชคลก การเปลยนแปลของเหตการณจะขนอยกบการกระท าในแตละสถานะ

4.3.3 การออกแบบโปรแกรมแบบ Data-Driven ใชแนวคดของขอมลในโปรแกรม โดยเรมตนจากการวเคราะหขอมลและความสมพนธระหวางขอมล ก าหนดโครงสรางขอมลเบองตน พจารณาความตองการขอมลน าเขาของผลลพธ วามกระบวนการใดทจะท าการแปลงขอมลน าเขาเพอใหไดผลลพธทตองการ

4.4 การทดสอบโปรแกรม หลงจากเขยนโปรแกรมเสรจแลว ขนตอนตอไปคอ การทดสอบการท างานของ

โปรแกรมทเขยนขนวาถกตอง และท างานไดตามตองการหรอไม โดยการแปลภาษาและสงท างาน ส าหรบการทดสอบสามารถท าไดดวยการน าเขาหรอปอนขอมลผานหนาจอทออกแบบไวตามวธการทดสอบโปรแกรมทก าหนดไว โดยสามารถพจารณาจากขอผดพลาดทเกดขนได ซงสามารถแบงออกได 2 ชนดดงน

4.4.1 ความผดพลาดทางไวยากรณภาษา (syntax error) เปนความผดพลาดทเกดจากการเขยนค าสงของภาษาคอมพวเตอรผด เชน ค าสง echo( ) ซงเปนค าสงส าหรบแสดงผลลพธในภาษา php ตองเขยนดวยตวอกษรตวเลก แตเขยนเปน ECHO( ) ตวแปลภาษาของภาษา php จะไมสามารถท างานได เปนตน ส าหรบความผดพลาดทางไวยากรณจะถกตรวจสอบพบเมอมการแปลโปรแกรมใหเปนภาษาเครอง ซงสามารถแกไขโดยการเขยนค าสงใหถกตองตามหลกไวยากรณของแตละภาษา

4.4.2 ความผดพลาดทางตรรกะ (logical error) เปนความผดพลาดทเกดจากการล าดบการท างานผดหรอปอนสตรค านวณผด เชน ตองการหาคา X = X + Y แตปอนสตรเปน X = X * Y ซงผลลพธทไดไมใชตามทตองการ เปนตน วธการตรวจหาความผดพลาดแบบน คอ ตรวจสอบการค านวณผลลพธของโปรแกรมวาตรงกบผลลพธทค านวณดวยมอหรอเครองคดเลขหรอไม ถาไมตรงกนแสดงวาเกดความผดพลาดทางตรรกะขน วธการแกไขคอ การแกไขสตรใหถกตอง หรอแกไขล าดบการท างานใหถกตอง

4.5 การจดท าเอกสารประกอบ

เมอผ เขยนโปรแกรมไดท าการทดสอบโปรแกรมและแกไขขอผดพลาดท เกดขนเรยบรอยแลว ขนตอนตอไปกควรจดท าคมอการใชโปรแกรม เพราะจะท าใหผใชโปรแกรมสามารถใชงานไดถกตอง โดยคมอการใชโปรแกรมทดควรจดท าในลกษณะทแสดงการท างานเปนขนตอน ผใชโปรแกรมสามารถปฏบตตามไดจรง สวนประกอบในเอกสารควรมดงน วตถประสงคของระบบงาน ขนตอนของล าดบการท างาน โดยอาจเปนรหสเทยมหรอผงงาน โปรแกรมตนฉบบ ผลลพธของการท างาน และวธการตดตงโปรแกรม เปนตน

Page 45: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

27 4.6 การบ ารงรกษาโปรแกรม

การบ ารงรกษาโปรแกรมทพฒนาขนตองด าเนนการเพอใหโปรแกรมสามารถท างานไดอยางไมตดขด เชน รปแบบรายงานมการเปลยนแปลง ผใชตองการรายงานเพม จ าเปนตองมการแกไขโปรแกรมเพอใหรองรบกบความตองการของผใชทเปลยนแปลง อกทงตองมค าแนะน าใหผใ ชโปรแกรมปฏบต เชน การเกบโปรแกรมตนฉบบ ควรเกบไวในกลองทมดชด ปองกนฝนได ไมควรเกบไวบนโตะท างาน ไมควรเกบไวในรถยนตเพราะอาจถกอากาศรอนท าใหเสยหายได นอกจากนตองมการส าเนาโปรแกรมตนฉบบเอาไว อยางนอย 1 ชด แลวน าชดทส าเนาไปใช ไมควรใชโปรแกรมตนฉบบโดยตรง ควรเกบเอาไวส าหรบกรณทโปรแกรมส าเนาเกดปญหาจะไดน าโปรแกรมตนฉบบมาท าส าเนาและใชงานไดทนท

สรป

ระบบคอมพวเตอรหมายถงการท างานบนเครองคอมพวเตอรทมองคประกอบของฮารดแวร ซอฟตแวร ขอมลน าเขา กระบวนการ และผลลพธ รวมกนท างานเพอใหเสรจสนตามวตถประสงค โปรแกรมคอมพวเตอรหมายถง ชดค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานตามทตองการดวยภาษาคอมพวเตอรทมอยหลายประเภทคอภาษาเครอง ภาษาแอสเซมบล ภาษาระดบสง และภาษาระดบสงมาก และเพอใหเครองคอมพวเตอรท างานและเขาใจค าสงทเขยนขนจะตองใชโปรแกรมส าหรบแปลภาษาดงน โปรแกรมแปลแบบภาษาแอสเซมเบลร แบบอนเตอรพรเทอร และแบบคอมไพเลอร อลกอรทม หรอ ขนตอนวธ หมายถง ขนตอนการประมวลผลหรอวธการท างานอยางใดอยางหนง ซงสามารถแบงออกเปนขนตอนยอย ๆ มการอธบายล าดบขนตอนการประมวลผลในลกษณะขอความเรมตงแตตนจนจบสนการท างาน มหลกการเขยนอลกอรทมพนฐานมดงน ภาษาทใชควรอานเขาใจงาย ไมก ากวม มล าดบขนตอนการท างานกอน-หลงทชดเจน ไดผลลพธทถกตองเมอใชในการแกไขปญหา สามารถประมวลผลดวยเครองคอมพวเตอรได อลกอรทมตองมจดสนสด หลงจากด าเนนงานตามระยะเวลาทก าหนด ส าหรบคณสมบตการท างานพนฐานของระบบคอมพวเตอร ทตองท าความเขาใจเพอน าไปใชในการเขยนอลกอรทมไดถกตอง ประกอบดวยดานตางๆ ดงน ดานหนวยความจ า ดานการค านวณ ดานการเปรยบเทยบเชงตรรกะ ดานการแสดงคาขอมล ดานการจดล าดบการท างาน ลกษณะการเขยนอลกอรทมสามารถเขยนออกมาในรปแบบของรหสเทยม (Pseudo Code) หรอผงงาน (Flow Chart) โดยผงงานจะแสดงขนตอนการท างานทใชสญลกษณรปภาพแทนความหมายตางๆ และใชลกศรก าหนดทศทางการด าเนนงาน สวนรหสเทยมคอการน าภาษาธรรมชาตมาใชรวมกบภาษาโปรแกรมชนสง ขนตอนวธการทางคอมพวเตอร ประกอบดวยขนตอนการท างาน ดงน การวเคราะหปญหา การเขยนอลกอรทม การเขยนโปรแกรม การทดสอบโปรแกรม และการจดท าเอกสารประกอบ และการบ ารงรกษาโปรแกรม

Page 46: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

28

แบบฝกหด

1. จงบอกองคประกอบของระบบคอมพวเตอร 2. ภาษาคอมพวเตอรคออะไร แบงออกไดกประเภท

3. จงอธบายความหมายของอลกอรทก

4. จงอธบายคณบตการท างานพนฐานของระบบคอมพวเตอร 5. จงเขยนอลกอรทมในการเลยงปลาในตปลา

6. จงเขยนผงงานและรหสเทยมในการหาพนทวงกลม

Page 47: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

29

เอกสารอางอง ณฐพงษ วารประเสรฐ และ สธ พงศาสกลชย. (2552). โครงสรางขอมลและอลกอรทม. กรงเทพฯ:

เคทพ คอมพ แอนด คอนซลท. รงทวา เสารสงห. (2546). การเขยนโปรแกรมคอมพวเตอรเบองตน. กรงเทพฯ: ซเอดยเคชน.

สานนท เจรญฉาย. (2544). การเขยนโปรแกรมและอลกอรทม(กรณตวอยางภาษาซ). กรงเทพฯ : โรงพมพมหาจฬาลงกรณราชวทยาลย วดมหาธาต.

โอภาส เอยมสรวงค. (2557). วทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ (ฉบบปรบปรง เพมเตม). กรงเทพฯ: ซเอดยเคชน. Joyce Farrell. (2013). A Beginner’s Guide to Programming Logic and Design

Introductory. 7th ed. China: Course Technology, Cengage Learning.

Page 48: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 2

เนอหาประจ าบทท 2 โครงสรางการเขยนโปรแกรม

โครงสรางแบบตามล าดบ (Sequence)

โครงสรางแบบทางเลอก (Selection)

โครงสรางแบบวนซ า (Loop)

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนน แลว ผเรยนมพฤตกรรมดงน 1. อธบายความหมายเกยวกบโครงสรางพ นฐานการเขยนโปรแกรม 2. จ าแนกโครงสรางพ นฐานการเขยนโปรแกรม 3. สามารถเขยนอลกอรทมโดยน าโครงสรางรปแบบตางๆ ไปใชแกไขปญหาตามแบบฝกหด

ประจ าบทไดอยางเหมาะสม

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

2. กจกรรมการเรยนการสอน

สปดาห 3-4 (8 ชวโมง) 2.1 ผสอนอธบายเน อหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยงไมเขาใจ

ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเน อหาสาระส าคญ

2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom เพอใหผสอนตรวจ อธบายเพมเตม และสรปค าตอบทถกตอง

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เน อหาบทท 2 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

Page 49: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

32

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 50: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 2 โครงสรางการเขยนโปรแกรม

การเขยนโปรแกรมแมวาจะสลบซบซอนหรอมความยาวหลายพนบรรทด ถาไมมการออกแบบโครงสรางโปรแกรมทด อาจไดโปรแกรมทท างานพดพลาด และยากตอการแกไข ตดตาม และพฒนาตอไปได และเพอใหโปรแกรมดเขาใจงาย และสะดวกตอการแกไขเมอพบปญหาในภายหลง จงจ าเปนตองเขยนผงงานหรอรหสเทยบแบบมโครงสรางควบคม ไมวาจะเขยนโปรแกรมคอมพวเตอรดวยภาษาใดกตาม ในบทนมเนอหาเกยวกบโครงสรางการเขยนโปรแกรมทเปนพนฐานส าคญททกโปรแกรมตองมการน าไปใชรวมกนประกอบดวย 3 รปแบบคอ โครงสรางแบบตามล าดบ โครงสรางแบบทางเลอก และโครงสรางแบบวนรอบ

โครงสรางแบบตามล าดบ (Sequence Structure)

โครงสรางแบบตามล าดบ หมายถง การเขยนโปรแกรมใหท างานสงหนงแลวท าอกสงหนงเรยงตอเนองกนไปจากบนลงลาง ประกอบดวยการท างานกขนตอนกไดแตตองกระท าตอเนองกน เขยนรหสค าสงเปนบรรทดและท าทละบรรทดจากบรรทดบนสดไปจนถงบรรทดลางสด แสดงเปนผงงานและรหสเทยมไดดงภาพท 2.1 (วไลพร กลตงวฒนา, 2554: 5; Joyce Farrell, 2013: 86-87)

ภาพท 2.1 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบตามล าดบ

จากภาพขางตนเปนการเขยนโปรแกรมใหมกระบวนการท างาน 3 กระบวนการคอ “Process1”, “Process2” และ “Process3” เรยงตอเนองกนไปตามล าดบ

Process 1

Process 2

Process 3

Page 51: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

34 ตวอยางท 2.1 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบตามล าดบ

ภาพท 2.2 ผงงานและรหสเทยมโปรแกรมหาผลคณของตวเลข

ทมา (Joyce Farrell, 2013: 40)

จากตวอยางขางตนผงงานประกาศตวแปรชนดตวเลข (num) ชอ “myNumber” และ “myAnswer” จากนนก าหนดใหรบคาจากแปนพมพ (input) มาเกบไวทตวแปร “myNumber” แลวก าหนดคาใหกบตวแปร “myAnswer” โดยการน าคาทเกบไวในตวแปร “myNumber” มาคณกบตวเลข 2 แลวใหแสดงผล (output) คาของตวแปร “myAnswer” ออกทางอปกรณแสดงผลลพธ เชน จอภาพ หรอเครองพมพ เปนตน

start

stop

Num myNumber

Num myAnswer

Input myNumber

Set myAnswer= MyNumber * 2

Output myAnswer

Start

Num myNumber

Num myAnswer

Input myNumber Set myAnswer= MyNumber * 2

Output myAnswer Stop

Page 52: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

35

โครงสรางแบบทางเลอก (Selection Structure)

โครงสรางแบบทางเลอกเปนการเขยนโปรแกรมแบบทดสอบเงอนไขกอนทจะท างานอยางใดอยางหนงหรอเลอกกระท า โดยปกตจะมเหตการณใหท า 2 กระบวนการ ถาเงอนไขเปนจรงจะกระท ากระบวนการหนง และถาเปนเทจจะกระท าอกกระบวนการหนง แตถาซบซอนมากขน จะตองใชเงอนไขหลายชน เชน การตดเกรดนกศกษา เปนตน แสดงเปนผงงานและรหสเทยมไดดงภาพท 2.3

(วไลพร กลตงวฒนา, 2554: 5-8; Joyce Farrell, 2013: 87-88)

ภาพท 2.3 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบทางเลอก

จากภาพขางตนผงงานและรหสเทยมจะท าการทดสอบเงอนไขกอนเพอเลอกด าเนนการอยางใดอยางหนง ถาเงอนไขเปนจรงจะเลอกด าเนนการ “Process 1” และถาเงอนไขเปนเทจจะเลอกด าเนนการ “Process 2” สนสดการทดสอบและออกจากโปรแกรม ส าหรบโครงสรางแบบทางเลอกสามารถแบงออกได 3 รปแบบ ดงน

1. โครงสรางแบบทดสอบเงอนไข 1 ทางเลอก นนคอ ทดสอบเงอนไขกอน ถาเปนจรงใหด าเนนการตามกระบวนการทก าหนด แตถาเปนเทจไมตองด าเนนการใหขามไปด าเนนการในสวนอนทเหลอหรออาจสนสดโปรแกรม ดงแสดงตามภาพท 2.4 พรอยพจารณาตวอยางท 2.2

Start

If Decision is true then

Process 1

Else

Process 2

End if Stop

1 2

Page 53: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

36

ภาพท 2.4 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบ 1 ทางเลอก

จากภาพขางตน ผงงานและรหสเทยมกอนด าเนนการจะทดสอบเงอนไข “ConditionH” วาเปนจรงหรอไม ถาเปนจรงจะด าเนนการ “Step J” ตอดวย “Step K” ถดมาเปน “Step L” และออกจากสวนนไปท าสวนถดไป และถาเงอนไขเปนเทจจะไมด าเนนการอะไรพรอมไปท าสวนถดไปเชนกน

ตวอยางท 2.2 รหสเทยมโปรแกรมโครงสรางแบบทดสอบเงอนไข 1 ทางเลอก

Start

Set CustomerAge= 50

Set Sales= 1500

Set Discount= 0

I f CustomerAge> = 65 then

Discount = Sales * 0.50

End if

Set Net= Sales-Discount

Output Net

stop

จากตวอยางขางตนรหสเทยมก าหนดคาให CustomerAge เปน 50 Sales เปน 1500 และคา Discount เปน 0 ทดสอบเงอนไขวา อายของลกคา (customerAge) มคามากกวาหรอเทากบ 65 หรอไม ถาเงอนไขเปนจรงใหก าหนดคาของ Discount เปนการน าคาของ Sales คณดวย 0.50 ถาเงอนไขเปนเทจไมตองด าเนนการในสวนนใหไปก าหนดคาของ Net โดยเกดจากน าคาของ Sales ลบออกดวย Discount พรอมแสดงคาของ Net ออกทางจอภาพ สนสดการท างานของโปรแกรม

ConditionH ?

Step J

Step K

Step L

Start

If ConditionH is true then

Step J

Step K

Step L

End if Stop

No Yes

Page 54: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

37 2. โครงสรางแบบทดสอบเงอนไข 2 ทางเลอก เปนการทดสอบเงอนไขกอน ถาเปนจรงใหด าเนนการกระบวนการทเปนจรง แตถาเปนเทจใหเลอกด าเนนการกระบวนการทเปนเทจ แสดงดงภาพท 2.3 พรอมพจารณาตวอยางท 2.3

ตวอยางท 2.3 รหสเทยมโปรแกรมโครงสรางแบบทดสอบเงอนไข 2 ทางเลอก

Start

Set CustomerAge= 50

Set Sales= 1500

I f CustomerAge> = 65 then

Discount = Sales * 0.50

Else

Discount = Sales * 0.25

End if

Set Net= Sales-Discount

Output Net

stop

จากตวอยางขางตนรหสเทยมก าหนดคาให CustomerAge เปน 50 Sales เปน 1500 และคา Discount เปน 0 ทดสอบเงอนไขวา อายของลกคา (customerAge) มคามากกวาหรอเทากบ 65 หรอไม ถาเงอนไขเปนจรงใหก าหนดคาของ Discount เปนการน าคาของ Sales คณดวย 0.50 ถาเงอนไขเปนเทจใหก าหนดคาของ Discount เปนการน าคาของ Sales คณดวย 0.25 สนสดการท างานในสวนการทดสอบเงอนไข แลวใหไปก าหนดคาของ Net โดยเกดจากน าคาของ Sales ลบออกดวย Discount พรอมแสดงคาของ Net ออกทางจอภาพ สนสดการท างานของโปรแกรม

3. โครงสรางแบบทดสอบเงอนไขหลายทางเลอก กอนด าเนนการทางเลอกใดจะทดสอบเงอนไขเสมอ ถาเปนจรงเงอนไขใดใหด าเนนการตามกระบวนการของเงอนไขนน

ภาพท 2.5 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบหลายทางเลอก

ConditionA ? Step J

Step K

Start

If ConditionA is true then

Step J

ElseIf ConditionB is true then

Step K

End if Stop

No

Yes

ConditionB ?

No

Yes

Page 55: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

38 จากภาพขางตน ผงงานและรหสเทยมกอนด าเนนการจะทดสอบเงอนไข “ConditionA” วาเปนจรงหรอไม ถาเปนจรงจะด าเนนการ “Step J” ถาเปนเทจ ใหทดสอบเงอนไข “ConditionB” วาเปนจรงหรอไม ถาเปนจรงจะด าเนนการ “Step K” ถดมาเปน “Step L” และถาเงอนไขเปนเทจจะไมด าเนนการอะไรพรอมไปท าสวนถดไปเชนกน พจารณาตวอยางท 2.4 ตอไปน

ตวอยางท 2.4 รหสเทยมโปรแกรมโครงสรางแบบทดสอบเงอนไขหลายทางเลอก

Start

Set CustomerAge= 50

Set Sales= 1500

I f CustomerAge> = 65 then

Discount = Sales * 0.50

Elseif CustomerAge> = 55 then

Discount = Sales * 0.25

End if

Set Net= Sales-Discount

Output Net

stop

จากตวอยางขางตนรหสเทยมก าหนดคาให CustomerAge เปน 50 Sales เปน 1500 และคา Discount เปน 0 ทดสอบเงอนไขวา อายของลกคา (customerAge) มคามากกวาหรอเทากบ 65 หรอไม ถาเงอนไขเปนจรงใหก าหนดคาของ Discount เปนการน าคาของ Sales คณดวย 0.50 ถาเงอนไขเปนเทจใหทดสอบเงอนไขถดไปวา อายของลกคา (customerAge) มคามากกวาหรอเทากบ 55 หรอไม ถาเงอนไขเปนจรงใหก าหนดคาของ Discount เปนการน าคาของ Sales คณดวย 0.25 สนสดการท างานในสวนการทดสอบเงอนไข แลวใหไปก าหนดคาของ Net โดยเกดจากน าคาของ Sales ลบออกดวย Discount พรอมแสดงคาของ Net ออกทางจอภาพ สนสดการท างานของโปรแกรม

โครงสรางแบบวนรอบ (Loop Structure)

โครงสรางแบบวนรอบ คอการด าเนนการกระบวนการอยางหนงหลายครง ถาเงอนไขเปนจรง และจะท าซ าไปจนกระทงเเงอนไขเปนเทจ จงหยดด าเนนการและออกจากสวนนไปท าสวนถดไปของโปรแกรม โครงรางแบบวนรอบสามารถแบงออกเปน 3 รปแบบ ดงน (วไลพร กลตงวฒนา, 2554: 9-16; Joyce Farrell, 2013: 88-93)

1. โครงสรางแบบตรวจสอบเงอนไขกอนแลวจงท าซ า โครงสรางแบบนจะตรวจสอบเงอนไขกอน ถาเปนจรงจะด าเนนการภายในการวนรอบ จากนนวนกลบไปตรวจสอบเงอนไขอกครง ด าเนนการซ า ๆ ไปจนกวาเงอนไขจะเปนเทจ จงออกนอกการวนรอบท างานซ า แสดงดงภาพท 2.6

Page 56: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

39

ภาพท 2.6 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบวนรอบ

จากตวอยางผงงานและรหสเทยมขางตน แสดงค าสงวนรอบ (while) ซงหมายถงการท าซ า (statement) ในขณะท เปนจรง (Condition is true) และเลกการท าซ าเมอเงอนไขเปน เทจ (Condition is false) จบการประมวลผลโปรแกรม พจารณาตวอยางท 2.5 ตอไปน

ตวอยางท 2.5 รหสเทยมโปรแกรมโครงรางแบบวนรอบ

Start

Set Count= 0

While Count< 4

Output “Hello”

Count= Count+ 1

End while

Output “Goodbye”

Stop

จากตวอยางขางตนรหสเทยมก าหนดคาให Count เปน 0 ใชค าสง While เพอตรวจสอบเงอนไขวา คาของ Count นอยกวา 4 หรอไม ถาเปนจรงใหแสดงขอความ “Hello” ออกทางจอภาพ แลวเพมคาให Count ขน 1 คา แลววนกลบไปตรวจสอบเงอนไขซ าอก ด าเนนการซ าไปจนกระทงเงอนไขเปนเทจ นนคอคา Count เทากบ 4 จงหยดการท างานแลวออกนอกการวนรอบไปท าค าสงแสดงขอความ “Goodbye” ออกทางจอภาพ แลวสนสดการประมวลผลโปรแกรม ผลลพธของโปรแกรมจะแสดงขอความ “Hello” จ านวน 4 ครง และแสดง “Goodbye” จ านวน 1 ครง

2. โครงสรางแบบด าเนนการกอนแลวจงตรวจสอบเงอนไขเพอท าซ า จะด าเนนการตามชดค าสงภายในการวนรอบกอน 1 รอบ แลวจงตรวจสอบเงอนไข ถาเงอนไขเปนจรงใหกลบไปท างาน

Start

While Condition is true

Statement

End while Stop

Yes

No

Page 57: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

40 ภายในการวนรอบอก ท าซ าเชนนไปจนกระทงเงอนไขเปนเทจ จงหยดการท างานและออกนอกการวนรอบ แสดงดงภาพท 2.7

ภาพท 2.7 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบด าเนนการวนรอบกอนแลวจงตรวจสอบเงอนไขเพอท าซ า

จากตวอยางผงงานและรหสเทยมขางตน แสดงค าสงวนรอบ (do…while) จะด าเนนการสวน statement กอนแลวจงตรวจสอบเงอนไข กรณ เปนจรง (Condition is true) ใหวนกลบไปท า statement ซ าจนกวาเงอนไขเปนเทจ (Condition is false) จงหยดการท า statement ซ าและจบการประมวลผลโปรแกรม พจารณาตวอยางท 2.6 ตอไปน

ตวอยางท 2.6 รหสเทยมโปรแกรมแบบท ากอนแลวจงตรวจสอบเงอนไขเพอท าซ า

Start

Set Count= 0

Do

Output “Hello”

Count= Count+ 1

While Count< 4

Output “Goodbye”

Stop

จากตวอยางขางตนรหสเทยมก าหนดคาให Count เปน 0 สวนค าสง Do เปนการบอกจดเรมตนในการท าซ า โดยจะแสดงขอความ “Hello” ออกทางจอภาพ แลวเพมคาให Count ขน 1 คา ใชค าสง While ตรวจสอบเงอนไขวา คาของ Count นอยกวา 4 หรอไม ถาเปนจรงใหแลววนกลบไปท าซ าอก ด าเนนการซ าไปจนกระทงเงอนไขเปนเทจ นนคอคา Count เทากบ 4 จงหยดการ

Yes

No

Start

Do

Statement

While Condition is true

Stop

Page 58: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

41 ท างานแลวออกนอกการวนรอบไปท าค าสงแสดงขอความ “Goodbye” ออกทางจอภาพ แลวสนสดการประมวลผลโปรแกรม ผลลพธของโปรแกรมจะแสดงขอความ “Hello” จ านวน 5 ครง และแสดง “Goodbye” จ านวน 1 ครง

3. โครงสรางแบบท าซ าตามจ านวนรอบทก าหนด เปนโครงสรางทสามารถระบจ านวนรอบในการท าซ า แสดงดงภาพท 2.8

ภาพท 2.8 ผงงานและรหสเทยมโปรแกรมโครงสรางแบบท าซ าตามจ านวนรอบทก าหนด

จากภาพขางตนโปรแกรมจะก าหนดคาเรมตนของตวแปรนบรอบ (initialization) ซงเปนตวแปรทจะน าไปตรวจสอบในเงอนไข จากนนเขาไปตรวจสอบเงอนไข (Loop Condition) ถาเงอนไขเปนจรงใหด าเนนการ statement และเพมคาใหตวแปรนบรอบ แลววนกลบไปตรวจสอบเงอนไขอกครงกอนเขาด าเนนการซ า ท าจนกระทงเงอนไขเปนเทจ จงหยดและออกจากการวนรอบไปท าในสวนถดไปของโปรแกรม ใหพจารณาตวอยางท 2.7 ตอไปน

ตวอยางท 2.7 รหสเทยมจากตวอยางท 2.5 สามารถเขยนโปรแกรมแบบท าซ าตามจ านวนรอบทก าหนด ซงสนและกระชบกวา

Start

For (count= 0; Count< 4; count= count+ 1)

Output “Hello”

End for

Output “Goodbye”

Stop

จากตวอยางขางตนเมอประมวลผลแลวจะท างานเหมอนตวอยางท 2.5

Start

For (initialization; loop Condition; increment)

Statement

End for

Stop

Yes

No Loop Condition

Page 59: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

42

สรป

โครงสรางการเขยนโปรแกรมทใชในการเขยนโปรแกรมคอมพวเตอร แบงออกเปน 3 รปแบบคอ โครงสรางแบบตามล าดบทเปนการเขยนโปรแกรมใหท างานตอเนองจากบนลงลางตามล าดบ โครงสรางแบบทางเลอกทเปนการเขยนโปรแกรมแบบทดสอบเงอนไขทจะท างานอยางใดอยางหนง โดยจะประกอบดวยโครงสรางยอย 3 รปแบบคอ โครงสรางแบบทดสอบเงอนไข 1 ทางเลอก โครงสรางแบบทดสอบเงอนไข 2 ทางเลอก และโครงสรางแบบทดสอบเงอนไขหลายทางเลอก สดทายโครงสรางแบบวนรอบทใชในการด าเนนการกระบวนการอยางหนงหลายครง ประกอบดวยโครงสรางยอย 3 รปแบบคอ แบบตรวจสอบเงอนไขกอนแลวจงท าซ า แบบด าเนนการกอนแลวจงตรวจสอบเงอนไขเพอท าซ า และแบบท าซ าตามจ านวนรอบทก าหนด

แบบฝกหด

1. จงอธบายหลกการท างานของโครงสรางแบบทางเลอก 2. จงอธบายหลกการท างานของโครงสรางแบบวนรอบ 3. จงบอกความแตกตางของโครงสรางแบบตรวจสอบเงอนไขกนอแลวจ าท าซ า และแบบด าเนนการ

กอนแลวจงตรวจสอบเงอนไขเพอท าซ า 4. จงเขยนผงงานและรหสเทยมของโปรแกรมส าหรบการตรวจสอบวา ถาคะแนนสอบไดมากกวา

หรอเทากบ 60 ใหแสดงขอความวา “สอบผาน” และถาคะแนนนอยกวา 60 ใหแสดงขอความวา “สอบไมผาน”

5. จงเขยนรหสเทยมและผงงานแกไขปญหาตอไปน 5.1. ค านวณรายรบหลงหกภาษของพนกงานแตละคน โดยมเงอนไขวา หากพนกงานมรายได

มากกวา 20,000 บาท ใหหกภาษ ณ ทจาย 5% หากมรายไดต ากวานไมตองหกภาษ ก าหนดใหแสดงคาตอไปน ชอ-สกลพนกงาน รายรบ ภาษหก ณ ทจาย รายรบหลงหกภาษ

5.2. การค านวณคาคอมมชชนของพนกงานขายในแตละเดอน โดยมเงอนไขการคดคาคอมมชชน ดงน

5.2.1. ถายอดขาย มากกวา 25,000 บาท ใหคาคอมมชชน 7% ของยอดขาย

5.2.2. ถายอดขาย 2,000 -25,000 บาท ใหคาคอมมชชน 4% ของยอดขาย

5.2.3. ถายอดขาย ต ากวา 2,000 บาท ใหคาคอมมชชน 2% ของยอดขาย

5.2.4. ก าหนดใหแสดงคาดงน ชอ-นามสกลพนกงาน ยอดขาย คาคอมมชชนทไดรบ

Page 60: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

43

เอกสารอางอง

วไลพร กลตงวฒนา. (2554). โครงสรางขอมลและขนตอนวธ. อดรธาน: มหาวทยาลยอดรธาน Joyce Farrell. (2013). A Beginner’s Guide to Programming Logic and Design

Introductory. 7th ed. China: Course Technology, Cengage Learning.

Page 61: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 3

เนอหาประจ าบทท 3 ความรพนฐานการเขยนโปรแกรมบนอนเทอรเนต

อนเทอรเนต เวลดไวดเวบ ( World Wide Web : WWW)

เวบเบราวเซอร (Web Browsers) เวบเซรฟเวอร (Web Servers) ยอารแอล (Uniform Resource Locators : URL)

โพรโทคอลเอชททพ (The Hypertext Transfer Protocol : HTTP)

ภาษาทใชในการเขยนโปรแกรม

การเตรยมความพรอมในการเขยนโปรแกรมภาษา PHP

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนนแลว ผเรยนมพฤตกรรมดงน 1. อธบายเกยวกบอนเทอรเนต เวลดไวดเวบ เวบเบราวเซอร เวบเซรฟเวอร ยอารแอล และ เอชททพ

2. สามารถเขยนโปรแกรมดวยภาษา HTML และ PHP แกไปปญหาตามแบบฝกหดประจ าบทไดอยางเหมาะสม

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย และสาธต 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

2. กจกรรมการเรยนการสอน

สปดาห 5-6 (8 ชวโมง) 2.1 ผสอนอธบายและสาธตเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยง

ไมเขาใจ ใหผเรยนคนควาเพมเตมจากอนเทอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญรวมกน

2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom เพอใหผสอนตรวจ อธบายและชแจงค าตอบทถกตอง

Page 62: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

46

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 3 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 63: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 3 ความรพนฐานการเขยนโปรแกรมบนอนเทอรเนต

การใชอนเทอรเนตหรอบรการตางๆ บนเวรดไวดเวบเขามามบทบาทตอการด ารงชวตในสงคมปจจบนเปนอยางมาก ไมวาจะเปนการตดตอสอสารกบเพอน การซอขายสนคา การเรยนรออนไลน หรอการดหนงฟงเพลง เปนตน ซงบรการทไดกลาวมานนถกพฒนาขนมาในลกษณะโปรแกรมบนเวบ (Web Based Application) ทการแสดงผลของโปรแกรมจะอยบนเวบเบราวเซอรทผใชสามารถเขาถงไดงายผานเครอขายอนเทอรเนต เนอหาภายในบทจะเกยวกบทมาและความหมายของอนเทอรเนต หลกการท างานของเวลดไวดเวบ บรการทมบนอนเทอรเนต รายละเอยดของเวบเบราวเซอรและเวบเซรฟเวอร ยอารแอลหรอทอยของเวบไซต เอชททพทไดจดเตรยมสวนตอประสาน (Interface) ไวส าหรบสอสารระหวางเวบเบราวเซอรกบเวบเซรฟเวอร ภาษาทใชในการเขยนโปรแกรม นนคอภาษา HTML และภาษา PHP ทายบทเปนการเตรยมความพรอมในการเขยนโปรแกรม ซงเปนเนอหาพนฐานทนกเขยนโปรแกรมจ าเปนตองเรยนรกอนจะศกษาภาษา PHP ซงมลกษณะของการเขยนโปรแกรมบนเวบและยงเปนพนฐานในการเรยนรการเขยนโปรแกรมบนเวบในบทถดไป

อนเทอรเนต อนเทอรเนต (Internet) ค าวา Internet มาจากค าวา Interconnection network เปน

เครอขายคอมพวเตอรขนาดใหญทประกอบดวยเครอขายยอยจ านวนมากทมการเชอมตอกนดวยโพรโทคอลทซพ/ไอพ (TCP/IP) ซงเปนโพรโทคอลทถกใชในการเชอมตอขอมลระหวางเครองคอมพวเตอรตนทางและปลายทางในเครอขาย ท าใหสามารถตดตอสอสารและท างานรวมกนไดอยางด (สาขาวชาวทยาศาสตรและเทคโนโลย, 2556: 3-9)

อนเทอรเนตก าเนดขนครงแรกในประเทศสหรฐอเมรกา เมอป พ.ศ. 2512 โดยองคกรทางทหารของสหรฐอเมรกา ชอวา ย.เอส.ดเฟนซ ดพารทเมนท ( U.S. Defence Department ) เปนผคดคนระบบขนมา มวตถประสงคเพอใหมระบบเครอขายทไมมวนตายแมจะมสงคราม ระบบการสอสารถกท าลายหรอตดขาด แตระบบเครอขายแบบนยงท างานได ซงระบบดงกลาวจะใชวธการสงขอมลในรปของคลนไมโครเวฟ ฝายวจยขององคกรจงไดจดตงระบบเนตเวรกขนมา เรยกวา ARPAnet

ยอมาจากค าวา Advance Research Project Agency net ซงประสบความส าเรจและไดรบความนยมในหมของหนวยงานทหาร องคกร รฐบาล และสถาบนการศกษาตางๆ เปนอยางมาก เมอ ARPAnet ประสบความส าเรจ กมองคกรมหาวทยาลยตางๆ ใหความสนใจเขามารวมในโครงขายมากขน โดยเนนการรบสงจดหมายอเลกทรอนกส ( Electronic Mail ) ระหวางกนเปนหลก ตอมากไดขยายการบรการไปถงการสงแฟมขอมลขาวสารและสงขาวสารความรทวไป แตไมไดใชในเชงพาณชย

Page 64: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

48 เนนการใหบรการดานวชาการเปนหลก ในป พ.ศ. 2523 คนทวไปเรมสนใจอนเทอรเนตมากขน มการน าอนเทอรเนตมาใชในเชงพาณชย มการท าธรกจบนอนเทอรเนต บรษท หางรานตางๆ กเขารวมเครอขายอนเทอรเนตมากขน (ประสาท เนองเฉลม, 2557: 45-46)

ประเทศไทยไดเรมตดตอกบอนเทอรเนตในป พ.ศ. 2530 ในลกษณะการใชบรการ จดหมายอเลกทรอนกสแบบแลกเปลยนอเมลเปนครงแรก โดยเรมทมหาวทยาลยสงขลานครนทร วทยาเขตหาดใหญ (Prince of Songkla University) และสถาบนเทคโนโลยแหงเอเชยหรอสถาบนเอไอท ( AIT ) ภายใตโครงการความรวมมอระหวางประเทศไทยและออสเตรเลย (โครงการ IDP) ซงเปนการตดตอเชอมโยงโดยสายโทรศพท จนกระทงป พ.ศ. 2531 มหาวทยาลยสงขลานครนทร วทยาเขตหาดใหญ ไดยนขอทอยอนเทอรเนตในประเทศไทย โดยไดรบทอยอนเทอรเนตเปน Sritrang.psu.th

ซงนบเปนทอยอนเทอรเนตแหงแรกของประเทศไทย ตอมาป พ.ศ. 2534 บรษท DEC (Thailand)

จ ากดไดขอทอยอนเทอรเนตเพอใชประโยชนภายในของบรษท โดยไดรบทอย อนเทอรเนตเปน dect.co.th โดยทค า “th” เปนสวนทเรยกวา โดเมน (Domain) ซงเปนสวนทแสดงโซนของเครอขายอนเทอรเนตในประเทศไทย โดยยอมาจากค าวา Thailand กลาวไดวาการใชงานอนเทอรเนตชนดเตมรปแบบตลอด 24 ชวโมง ในประเทศไทยเกดขนเปนครงแรกเมอเดอน กรกฎาคม ป พ.ศ. 2535 โดยสถาบนวทยบรการ จฬาลงกรณมหาวทยาลยไดเชาวงจรสอสารความเรว 9600 บตตอวนาท จากการสอสารแหงประเทศไทยเพอเชอมเขาส อนเทอรเนตทบรษท ยยเนตเทคโนโลย (UUNET

Technologies) ประเทศสหรฐอเมรกา ในปเดยวกน ไดมหนวยงานทเชอมตอแบบออนไลนกบเครอขายอนเทอรเนตผานจฬาลงกรณมหาวทยาลยหลายแหงดวยกน ไดแก สถาบนเทคโนโลยแหงเอเชย ( AIT ) มหาวทยาลยมหดล สถาบนเทคโนโลยพระจอมเกลา เจาคณทหารลาดกระบง มหาวทยาลยเชยงใหม และมหาวทยาลยอสสมชญบรหารธรกจ โดยเรยกเครอขายนวาเครอขาย “ไทยเนต” (THAInet) ซงนบเปนเครอขายทม “เกตเวย” ( Gateway ) หรอประตส เครอขายอนเทอรเนตเปนแหงแรกของประเทศไทย ปจจบนไดมผรจกและใชอนเทอรเนตมากขน มอตราการเตบโตมากกวา 100% สมาชกของอนเทอร เนตขยายจากอาจารยและนสตนกศกษาในระดบอดมศกษาไปสประชาชนทวไป (ประสาท เนองเฉลม, 2557: 46-50)

Page 65: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

49

ภาพท 3.1 เครอขายอนเทอรเนต

ทมา (Redes Estruturadas, 2016)

เวลดไวดเวบ ( World Wide Web : WWW)

การใชหลกการแบบไคแอนต-เซรฟเวอร ท าใหอนเทอรเนตมการใหบรการตางๆ มากมาย ผใชบรการสามารถเรยกใชบรการเหลานจากระยะไกลได เครอขายอนเทอรเนตจงเปนเครอขายทไมขนอยกบระยะทาง แมวาผใชบรการจะอยคนละซกโลก และมระบบการท างานเปนแบบโลกาภวฒน คอ สามารถตดตอถงกนไดทวโลก

ประมาณป พ.ศ. ๒๕๓๔ มการพฒนาระบบการเชอมโยงขาวสารแบบไฮเปอรเทกซบนเครอขาย สวนของไฮเปอรเทกซเปนเอกสารทเชอมโยงกนไดทวทงเครอขาย จงเรยกระบบสารเชอมโยงขอมลขาวสารนวา WWW (World Wide Web) ระบบขาวสารเวลดไวดเวบ เปนระบบขาวสารทมประโยชนมาก มการใชกนอยางกวางขวาง และเปนทนยมของผใชอนเทอรเนต หากยอนกลบไปในอดตความคดในเรองไฮเปอรเทกซมมานานแลว โดยเฉพาะในสมยทบรษทแอปเปลคอมพวเตอร สรางเครองแมคอนทอช และระบบกราฟกยสเซอรอนเทอรเฟส (GUI) บรษทแอปเปลคอมพวเตอรไดสรางรปแบบของการเกบขอมลแบบไฮเปอรเทกซไว ระบบการเกบขอมลแบบไฮเปอรเทกซ จงเปนทรจกกนดในกลมผใชเครองแอปเปลแมคอนทอช เมออนเทอรเนตแพรหลาย ความคดในการท าไฮเปอรเทกซมาประยกตบนเครอขายกเรมเปนรปราง โดยมการพฒนากลไกขนมา ๓ สวน สวนแรกคอ ตวเนอหา หรอขอมล ซงกคอ ตวหนงสออเลกทรอนกส ทรวมรปภาพ เสยง และภาพเคลอนไหวไว หรอมลกษณะเปนแบบมลตมเดย หนงสออเลกทรอนกสนมลกษณะเฉพาะตามมาตรฐานทก าหนด โดยเนนการผลตตวหนงสออเลกทรอนกสทแยกออกไป การจดรปแบบหนงสอใชมาตรฐาน HTML สวนทสองคอ สวนจดการหนงสออเลกทรอนกสและเชอมโยงบนเครอขาย ซงไดม

Page 66: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

50 การก าหนดโพรโทคอลพเศษ ส าหรบการเชอมโยงบนเครอขายคอมพวเตอร เรยกวา โพรโทคอล http

(hypertext transfer protocol) โพรโทคอลนมลกษณะท างานรวมกนไดอยางมประสทธภาพ สวนทสามคอ เครองเปดอานหนงสอ หรอทเรยกวา เบราวเซอร (browser) เครองเปดอานหนงสอจะเชอมโยงเขาสเครอขายตามโพรโทคอลทก าหนด และเชอมโยงเพอน าขอมลหนงสอ (ไฮเปอรเทกซ) มาแสดงผลบราวเซอรสามารถแสดงผลแบบมลตมเดยได เมอรวมทง ๓ สวนนเขาดวยกน จงกลายมาเปนสงทมประโยชนอยางมากมาย เราเรยกระบบขาวสารทเชอมโยงเปนเครอขายวา เวลดไวดเวบ

(โครงการสารานกรมไทยส าหรบเยาวชน, 2559)

ภาพท 3.2 บรการเวลดไวดเวบ

ทมา (123RF, 2016)

เวบเบราวเซอร (Web Browsers) เวบเบราวเซอรหรอโปรแกรมคนดเวบ คอโปรแกรมคอมพวเตอรทผใชสามารถดขอมลและ

โตตอบกบขอมลสารสนเทศทจดเกบในเวบเพจทสรางดวยภาษาเฉพาะ เชน ภาษาเอชทเอมแอล และภาษาพเอชพ เปนตน ทจดเกบไวทเวบเซอรวซ เวบเซรฟเวอร หรอระบบคลงขอมลอน ๆ โดยโปรแกรมคนดเวบเปรยบเสมอนเครองมอในการตดตอกบเครอขายคอมพวเตอรขนาดใหญทเรยกวา เวลดไวดเวบ สวนเวบเบราวเซอรตวแรกของโลกชอ “เวลดไวดเวบ” ซงในปจจบนมเวบเบราวเซอรใหใชงานดงน กเกลโครม (Google Chrome) มอซลลาไฟรฟอกซ (Mozilla Firefox) และอนเทอรเนตเอกซพลอเรอร (Internet Explorer : IE) เปนตน (Robert W.Sebesta, 2002: 7)

Page 67: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

51

ภาพท 3.3 โปรแกรมเวบเบราวเซอร ทมา (Peter O'Shaughnessy, 2016)

เวบเซรฟเวอร (Web Servers) เวบเซรฟเวอรเปนเครองคอมพวเตอรประสทธภาพสงทท าหนาทเปนแหลงเกบเวบไซตททก

คนสามารถใชเวบเบราวเซอรตดตอเพอขอดขอมลภายในเวบเพจได เวบเซรฟเวอรสวนใหญจะตดตอกบเครอขายอนเทอรเนตตลอดเวลา โดยใชสายสงขอมลความเรวสงเพอใหบรการผทเชอมตอเขาเยยมชมเวบไซต (Robert W.Sebesta, 2002: 8; Web Developers Notes, 2016)

ภาพท 3.4 ตวอยางเวบเซรฟเวอรทใชงานอยในปจจบน

ทมา (fastwebhost, 2016)

ยอารแอล (Uniform Resource Locators : URL)

ตวชแหลงในอนเทอรเนต หรอ โปรแกรมชแหลงทรพยากรสากล (องกฤษ: Uniform

Resource Locator, Universal Resource Locator) เรยกโดยยอวา ยอารแอล (องกฤษ: URL) คอตวระบแหลงทรพยากรสากล (URI) ประเภทหนง ซงใชส าหรบระบแหลงทอยของทรพยากรทตองการ และมกลไกบางอยางส าหรบดงขอมลทรพยากรนนมา ในการใชในเอกสารทางเทคนคและการอภปรายทวไป มกจะใชยอารแอลแทนความหมายทคลายกบยอารไอ ซงไมใชความหมายทถกตองและอาจท าใหเกดความสบสนในภาษาพดทวไป ยอารแอลอาจหมายถง ทอยบนเวบ หรอ ทอยอนเทอรเนตกได ซงปกตแลวเรามกพมพยอารแอลในแถบทอยของเวบเบราวเซอรเพอเรยกขอมลจากเวบไซตทวไป (Berners-Lee, 1994)

Page 68: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

52

ภาพท 3.5 การพมพยอารแอล

โพรโทคอลเอชททพ (The Hypertext Transfer Protocol : HTTP)

โพรโทคอลเอชทท พ ถกพฒนาขน โดย World Wide Web Consortium (W3C) กบ Internet Engineering Task Force (IETF) ในป พ.ศ. 2542 เปนชดเอกสารทเรยกวา RFC 2616 ซงเปนขอก าหนดของ HTTP/1.1 รนทใชกนอยางกวางขวางในปจจบน มหนาทหลกในการก าหนดกฎเกณฑขนมาเพอเปนมาตรฐานส าหรบควบคมดแลการแลกเปลยนหรอสงขอมลระหวางเวบเพจ หรอโปรแกรมเวบเบราวเซอรจากเครองไอคเอนตกบเครองใหบรการ (Web Server) กอนการตดตอสอสารกนโพรโทคอลจะท าการสงการรองขอขอมลเพอสรางการเชอมตอ ซงโพรโทคอลเปนตวชวยใหเครองคอมพวเตอรทมระบบแตกตางกนสามารถสอสารกนไดอยางเขาใจ สวนภาษา HTML กสามารถท างานบนแพลตฟอรมทตางกนได นนคอภาษา HTML สามารถท างานในเวบเบราวเซอรไดทกประเภท รปแบบของขอมลทสงผานโพรโทคอลเอชททพ เชน ขอความ ภาพ หรอเสยงเปนตน (สาขาวชาวทยาศาสตรและเทคโนโลย, 2556: 1-5)

ภาษาทใชในการเขยนโปรแกรม

ภาษาทใชส าหรบเขยนโปรแกรมในลกษณะเวบแอพพลเคชนทตองศกษาม 2 ภาษาดงน 1. ภาษา HTML เปนภาษาพนฐานส าคญในการใชสรางเวบเพจ มโครงสรางการเขยนอยางชดเจนและเขาใจงาย โดยมการระบสวนของเนอหาและการจดการรปแบบการน าเสนอขอมลบนเวบ ภาษาเอชทเอมแอลถกพฒนาขนโดย ทม เบอรเนอรส ล (Tim Berners Lee) ซงท างานภายใตบรษทไอบเอม (IBM) ปจจบน HTML ถอเปนมาตรฐานหนงของไอเอสโอ ซงควบคมโดยองคกร World Wide Web Consortium (W3C) ซงเปนองคกรทก าหนดมาตรฐานเพอใหองคกรขนาดใหญน ามาตรฐานดงกลาวไปใชในการจดรปแบบและหมวดหมเอกสารออนไลนทมจ านวนมากในการใชงานใหเปนมาตรฐานเดยวกน สามารถเชอมโยง เขาใจความหมาย และท างานรวมกนได (สาขาวชาวทยาศาสตรและเทคโนโลย, 2556: 4_11-4_15; Robert W.Sebesta, 2002: 27-31)

ภาษา HTML จะแสดงโครงสรางของขอมลในการแสดงหวขอ ยอหนา รายการ ลงก รวมถงการสรางแบบฟอรม การเชอมโยงภาพหรอวดโอ โครงสรางของภาษาจะอยภายในวงเลบสามเหลยม (< >) สามารถเขยนค าสงเปนตวพมพใหญหรอพมพเลกกได เชน <html> หรอ <HTML> ซงทงสองค าสงนมความหมายเหมอนกน โดยจะเรยกค าสงของภาษา HTML วาแทก (tag) ซงน าไปใช

แถบทอย ระบ URL

Page 69: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

53 ในการก าหนดรปแบบของขอความบนเวบเพจทสรางขน ภาพท 3.6 แสดงโครงสรางและแทกมาตรฐานของภาษา HTML

ภาพท 3.6 โครงสรางและแทกมาตรฐานภาษา HTML

จากภาพขางตนแทกพนฐานของภาษา HTML ม <html>…</html> ก าหนดจดเรมตนของภาษา แทก <head>…</head> ใชส าหรบแสดงสวนแถบหวของเวบเบราวเซอร แทก<title>…</title> จะตองก าหนดไวระหวางแทก <head> เพอระบขอความทจะแสดงบนแถบหว สวนแทก <body>…</body> พนทบรเวณนมไวเพอแสดงขอความ รปภาพ วดโอตางๆ บนเวบเพจ

2. ภาษา PHP

ภาษา PHP ถกพฒนาขนโดย Rasmas Lerdorf ในป 1994 เพอใชเปนเครองมอในการพฒนาเวบไซตสวนตว โดยพฒนามาจากภาษา C ทสามารถแยกประมวลผลรหสค าสงสวนของภาษา HTML ออกจากสวนของภาษา C แลวสรางรหสค าสงของภาษา HTML ขนมาใหม โดยตงชอโปรแกรมนวา Personal Home Page (PHP tools) และไดแจกจายรหสค าสงออกไปใหผสนใจหรอนกเขยนโปรแกรมไดใชงานฟร ตอมาจงไดเรมเปดใหผสนใจเขามารวมพฒนาตอในลกษณะ Open Source จนไดภาษา PHP รน PHP/FI จนกระทงในป 1997 ถง 1999 นกเขยนโปรแกรมชอ Zeev Suraski และ Andi Gutmans ไดรวมกนปรบปรงพฒนาดานประสทธภาพ การสนบสนนการเขยนโปรแกรมเชงวตถจนไดภาษา PHP รน PHP 3 ซงเปนรนทไดรบความนยมเปนอยางมาก และยงมการพฒนาอยางตอเนอง จนในปจจบนภาษา PHP ไดถกพฒนาจนถงรน PHP 7 ทนกเขยนโปรแกรมสามารถดาวนโหลดมาใชงานไดฟรจากเวบไซต http://php.net/downloads.php และยงสามารถศกษารายละเอยดการตดตงโปรแกรมและการใชงานไดท http://php.net/docs.php จงเปนอกภาษาหนงทนาจะเปนทางเลอกส าหรบนกเขยนโปรแกรม เนองจากเปนภาษาทเขยนงาย สามารถน าไปใชพฒนาเวบเพจทตองการตอบสนองกบผใช อกทงยงสามารถใชในการน าขอมลจากฐานขอมลมาแสดงผลในเวบเพจได จงเหมาะกบการน าไปใชในการสรางเวบแอพพลเคชนเพอใชงานในองคกร ระบบพาณชยอเลกทรอนคส เปนตน

<html>

<head>

<title>ชอเวบเพจหรอหวเรอง</title>

</head>

<body>

ขอความทตองการแสดงบนเวบเพจ

</body>

</html>

Page 70: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

54

การเตรยมความพรอมในการเขยนโปรแกรมภาษา PHP

การเขยนโปรแกรมภาษา PHP สงทนกเขยนโปรแกรมจะตองเตรยมมดงน เครองเซรฟเวอร (สามารถใชเครองคอมพวเตอรสวนบคคลได) เครองไคลเอนต (อาจใชเครองเดยวกนกบเครองเซรฟเวอรกได) โปรแกรมเวบเซรฟเวอร เชน Apache ซงท างานไดดกบภาษา PHP เปนตน โปรแกรม PHP Engine หรอตวแปลภาษา PHP โปรแกรมฐานขอมล เชน MySQL, Oracle หรอ MS Access เปนตน โปรแกรม Web Authoring หรอ Editor ทใชส าหรบสรางเวบเพจดวยภาษา PHP เชน Dreamweaver, Editplus หรอ Notepad เปนตน สดทายเมอตองการดผลลพธของโปรแกรมจะตองดผานโปรแกรมเวบเบราวเซอร เชน Google Chrome, Internet Explorer (IE) หรอ Firefox เปนตน ส าหรบรายละเอยดการตดตงโปรแกรมเพอใชในการพฒนาโปรแกรมภาษา PHP นนสามารถศกษาไดจาก https://www.appserv.org/th ซงเนอหาภายในเลมนเลอกใชชดโปรแกรม Appserv ทรวมซอฟรแวรประเภท Open Source หลายอยางมารวมกนโดยม Package หลกดงน Apache, PHP Engine, MySQL และ phpMyAdmin (appserv.org, 2559; Robert W.Sebesta, 2002: 461-462)

การเขยนและทดสอบการท างานของโปรแกรมภาษา PHP สามารถด าเนนการไดดงน 1. เปดโปรแกรม DreamweaverCS6 ส าหรบเขยนรหสค าสง จากนนบนทกไฟลใหม

นามสกลเปน .php โดยเกบไฟลไวภายใต “AppServ\www” ซงสามารถสรางโฟลเดอรยอยขนมาได ดงแสดงตามภาพท 3.7

ภาพท 3.7 การเขยนโปรแกรมภาษา PHP ดวย DreamweaverCS6

1.พมพรหสค าสงภาษา PHP

2. บนทกไฟล เลอกเมน SAVE

3.ไฟลมนามสกล .php

4.กดปม Save

Page 71: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

55 2. การทดสอบการท างานของโปรแกรม เมอเขยนโปรแกรมเรยบรอยแลวและตองการ

ทดสอบและดผลลพธการท างานผานทางโปรแกรมเวบเบราวเซอร โดยพมพ “localhost/” ตามดวยชอไฟล เชน ถาไฟลทตองการทดสอบการท างานชอ test.php ใหพมพ “localhost/test.php” ทชองระบยอารแอลของเวบเบราวเซอร ดงภาพท 3.8

ภาพท 3.8 การทดสอบโปรแกรมภาษา PHP ผานทางเวบเบราวเซอร

สรป

อนเทอรเนตเปนเครอขายคอมพวเตอรขนาดใหญทประกอบดวยเครอขายยอยจ านวนมากทมการเชอมตอกนดวยโพรโทคอลทซพ/ไอพ (TCP/IP) และมบรการทเรยกวา เวลดไวดเวบ ซงมการใหบรการตางๆ มากมาย ผใชบรการสามารถเรยกใชบรการเหลานจากระยะไกลได เครอขายอนเทอรเนตจงเปนเครอขายทไมขนอยกบระยะทาง แมวาผใชบรการจะอยคนละซกโลก ผใชสามารถใชโปรแกรมเวบเบราวเซอรในการใชบรการเวลดไวดเวบ ทเกบอยในเครองคอมพวเตอรประสทธภาพสงทเรยกวา เวบเซอรฟเวอร ในการเขาถงเวบไซตผใชบรการสามารถพมพยอารแอลของเวบไซตท “แถวทอย” ของเวบเบราวเซอร ส าหรบภาษาพนฐานทใชในการเขยนเวบเพจคอภาษา HTML และเพอใหเวบเพจทสรางขนมปฏสมพนธกบผใชสามารถแทรกสครปตภาษา PHP ลงไปในโปรแกรมภาษา HTML ได สวนเครองมอทใชในการเขยนเวบคอโปรแกรมประเภท Web Authoring หรอ Editor เชน Dreamweaver หรอ Notepad เปนตน

แบบฝกหด

1. จงบอกความหมายและยกตวอยางของเวบเบราวเซอร และเวบเซอรเวอร 2. จงยกตวอยางบรการเวลดไวดเวบทใชในชวตประจ าวน

3. จงบอกความแตกตางระหวางภาษา HTML กบภาษา PHP

4. ใหนกศกษาเขยนโปรแกรมภาษา PHP ดวยโปรแกรม DreamweaverCS6 ในการแสดงรหสนกศกษา ชอ และนามสกล ออกทางเวบเบราวเซอร

1.พมพ “localhost/test.php”

2.ผลลพธของโปรแกรม

Page 72: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

56

เอกสารอางอง โครงการสารานกรมไทยส าหรบเยาวชน. (2559). อนเทอรเนต. [ออนไลน], แหลงทมา HTTP:

http://kanchanapisek.or.th/kp6/sub/book/book.php?book=25&chap=6&page=c

hap6.htm

ประสาท เนองเฉลม. (2557). อนเทอรเนตเพอการเรยนร. กรงเทพฯ: โอเดยนสโตร. 123RF. (2016). Vector - social network laptop.communication in the global

computer networks. 2016, July 25. [online], Available HTTP:

https://www.123rf.com/photo_11888394_social-network-laptop-

communication-in-the-global-computer-networks.html

Aditya varma. (2016). What is Web Server and Different Types of Web Servers?.

2016, July 25. [online], Available HTTP: https://www.fastwebhost.in/blog/ what-is-web-server-and-different-types-of-web-servers/

Appserv. (2559). AppServ คออะไร. [ออนไลน], แหลงทมา HTTP:

https://www.appserv.org/th/

ASAP. (2016). Redes Estruturadas. 2016, July 10. [online], Available HTTP:

http://www.asap-mz.com/?page_id=151

Berners-Lee. (1994). Addressing. 2016, July 20. [online], Available HTTP:

https://www.w3.org/Addressing/URL/url-spec.txt

Peter O'Shaughnessy. (2016). Think you know the top web browsers?.

2016, June 25. [online], Available HTTP: https://medium.com/samsung-

internet-dev/think-you-know-the-top-web-browsers-458a0a070175

Robert W.Sebesta. (2006). Programming the World Wide Web 3rd ed. (3nd ed.pp.6- 13,pp.475-519). USA : Pearson Education,Inc. Web Developers Notes. (2016). What is web server – a computer OR a

program?. 2016, July 12. [online], Available HTTP:

https://www.webdevelopersnotes.com/what-is-web-server

Page 73: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 4

เนอหาประจ าบทท 4 ความรเบองตนเกยวกบภาษา PHP

หลกการท างานของภาษา PHP

รปแบบของภาษา

การใชงาน PHP รวมกบ HTML

การใสค าอธบาย

การแสดงผลลพธ ตวแปรและคาคงท

ตวด าเนนการ

โครงสรางควบคม

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนนแลว ผเรยนมพฤตกรรมดงน 1. อธบายหลกการท างานของภาษา PHP และรปแบบของภาษา 2. อธบายการใชงานตวแปร คาคงท และตวด าเนนการ 3. จ าแนกโครงสรางควบคมประเภทตางๆ ได 4. สามารถเขยนโปรแกรมภาษา PHP แทรกในไฟล HTML ได 5. สามารถใสค าอธบายลงในโปรแกรมทสรางขนได 6. สามารถเขยนโปรแกรมแสดงผลลพธ น าตวแปรหรอคาคงท และตวด าเนนการไปใชงานได 7. สามารถเขยนโปรแกรมทน าโครงสรางควบคมประเภทตางๆ มาใชงานไดอยางเหมาะสม

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย และสาธต 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

2. กจกรรมการเรยนการสอน

สปดาห 7-9 (12 ชวโมง) 2.1 ผสอนอธบายและสาธตเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยง

ไมเขาใจ ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญรวมกน

Page 74: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

58 2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom

เพอใหผสอนตรวจ อธบายและชแจงค าตอบทถกตอง

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 4 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 75: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 4 ความรเบองตนเกยวกบภาษา PHP

การเขยนโปรแกรมคอมพวเตอร นกเขยนโปรแกรมจ าเปนตองศกษารายละเอยดของภาษาคอมพวเตอรทจะน ามาใชในเขยนโปรแกรมระบบงานตางๆ ตามทตองการ เพอจะไดเขาใจและน าไปใชงานไดอยางเหมาะสม ในบทนจงไดกลาวถงเนอหาพนฐานส าหรบการเขยนโปรแกรมดวยภาษา PHP ทมประเดนเกยวกบหลกการท างานของภาษา PHP รปแบบของภาษา การใชงาน PHP

รวมกบเอกสาร HTML ค าสงในการใสค าอธบายและการแสดงผลลพธ ตวแปรและคาคงท ตวด าเนนการ และโครงสรางควบคมตามหลกไวยกรณของภาษา PHP เพอเปนพนฐานส าหรบการศกษาเนอหาในบทถดไป

หลกการท างานของภาษา PHP

สมศกด โชคชยชตกล (2550, 15) ไดกลาวถงหลกการท างานของภาษา PHP ไววา ภาษา PHP รนแรกจนถงรน 3 มการท างานแบบแปลตามล าดบทละประโยค (Interpretation process) คอ แปลไปท างานไปตามล าดบค าสงเหมอนกบภาษา HTML ตงแตรน 4 เปนตนมามกระบวนการท างานโดยจะแปล (compile) ทงโปรแกรมเกบไวในหนวยความจ าแลวจงท างาน สงผลใหสครปตในสวนทมการเรยกใชซ าจะประมวลผลไดเรวขนมาก การด าเนนการดงกลาวจะกระท าทฝงเซรฟเวอร (server side) นนคอเมอโปรแกรมภาษา PHP ทเกบอยในเครองเซรฟเวอรถกเรยกใชจากเวบเบราวเซอรทวไปจากเครองไอคเอนตจะประมวลผลและสรางผลลพธเปนไฟล HTML สงมายงเครองไคลเอนตเพอใหเวบเบราวเซอรแสดงผล ดงภาพท 4.1

ภาพท 4.1 หลกการท างานของภาษา PHP (ทมา guru99, 2016)

1. เครองไคลเอนตสงค ารองไปยงเครองเซอรเวอร

2.เครองเซอรเวอรตรวจสอบหาสครปต PHP

3.ถามสครปต PHP

จะแยกไปประมวลผลตามค ารองขอ

4.สรางผลลพธเปนไฟล HTML สงกลบไปยงเครองไคลเอนต

Page 76: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

60

รปแบบของภาษา

ชดค าสงหรอสครปตภาษา PHP สามารถเขยนแทรกไวภายในไฟล HTML หรอเขยนเฉพาะสครปตภาษา PHP หรอเขยนสครปตเพอสรางรหสค าสงของภาษา HTML กไดเชนกน และตองบนท าไฟลใหมนามสกลเปน “.php” เชน ไฟล output.php เปนตน ส าหรบการเขยนสครปตภาษา PHP จะมแทกทใชส าหรบบอกจดเรมตนและสนสดของค าสงภาษา PHP นยมใชอย 2 รปแบบคอ รปแบบแรกคอการเปดดวยแทก <?php ตามดวยชดค าสงภาษา PHP และปดดวยแทก ?> หรอรปแบบทสองจะเปดดวยแทก <script language= “php”> ตามดวยชดค าสงภาษา PHP และปดดวย </script> ซงมรปแบบการใชงานดงน (สมศกด โชคชยชตกล, 2550: 15-16)

ตวอยางท 4.1 การเขยนโปรแกรมเฉพาะสครปตภาษา PHP โดยใชแทก <?php ... ?>

< ?php

echo "Hello everyone";

?>

จากตวอยางท 4.1 ค าสงภาษา PHP ใหแสดงขอความ “Hello everyone” ออกทางเวบเบราวเซอรดวยค าสง echo

ตวอยางท 4.2 การเขยนโปรแกรมเฉพาะสครปตภาษา PHP โดยใชแทก <script language= “php”> ... </script>

<script language= “php”>

echo "Hello everyone";

< /script>

จากตวอยางท 4.2 เปนค าสงทท างานเหมอนกบตวอยางท 4.1 แตตางกนตรงการน าแทกมาใชเพอบอกจดเรมตนและจดสนสดของค าสงภาษา PHP

ตวอยางท 4.3 การแทรกสครปตภาษา PHP ลงไปในไฟลภาษา HTML

< html>

< body>

< h1> My first PHP script< /h1>

< ?php

echo "Hello Everyone";

?>

< /body>

< /html>

สครปตภาษา PHP

Page 77: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

61 จากตวอยางท 4.3 สามารถแทรกสครปตภาษา PHP ไวในไฟลภาษา HTML โดยเปดแทก <?php เพอก าหนดจดเรมตนของสครปต และปดดวยแทก ?> ในการก าหนดจดสนสดของสครปต

ตวอยางท 4.4 การเขยนโปรแกรมเฉพาะค าสงภาษา PHP เพอสรางรหสค าสงภาษา HTML

< ?php

echo “<body>”;

echo “<h1>My first PHP script</h1>”;

echo “Hello Everyone”;

echo “</body>”;

?>

จากตวอยางท 4.4 เปนการเขยนโปรแกรมเฉพาะสครปตภาษา PHP โดยสามารถเขยนใหสรางรหสชดค าสงภาษา HTML ผลการประมวลผลจะเหมอนกบการเขยนโปรแกรมเฉพาะสครปตภาษา HTML

ตวแปร (Variables) และคาคงท (Constant)

ระบบคอมพวเตอรเมอจะประมวลผลกระบวนการใดๆ กตามจะตองมการเกบขอมลหรอผลลพธไวในหนวยความจ าเพอจะไดน าขอมลเหลานนไปใชเปนขอมลน าเขาของการประมวลผลของกระบวนการถดไป จงตองมการจดสรรพนทหนวยความจ าในการจดเกบขอมล ซงพนทเหลานนจะเรยกวา ตวแปรหรอคาคงท โดยมรายละเอยดดงน

1. ตวแปร (Variable) หมายถง ตวแทนพนทในหนวยความจ าทจดสรรไวใชเกบขอมลในระหวางการประมวลผลโปรแกรมของระบบคอมพวเตอร ซงมประเดนทส าคญดงน (สมศกด โชคชยชตกล, 2550: 16-26)

1.1 การประกาศตวแปร ส าหรบการประกาศตวแปรในภาษา PHP นนจะขนตนดวยสญลกษณ $ (dollar sign) แลวจงตามดวยชอตวแปร สวนการตงชอตวแปรจะตองขนตนดวยตวอกษร หรอเครองหมาย _ เทานน ตวอกษรถดไปของชอตวแปรสามารถเปนตวอกษร ตวเลข หรอเครองหมาย _ น ามาผสมกนได และชอของตวแปรมคณสมบตเปน case-sensitive นนคอ ตวอกษรภาษาองกฤษพมพเลก และพมพใหญจะหมายถงคนละตว เชน ตวแปร $Z กบ $z ในภาษา PHP จะมองเปนคนละตว เปนตน เพราะฉะนนในการเรยกใชงานตวแปรจะตองพมพตวอกษรเปนพมพใหญหรอพมพเลกใหถกตอง การประกาศตวแปรในภาษา PHP ไดแสดงไวในดงตวอยางท 4.5 ดงน

ตวอยางท 4.5 การประกาศตวแปร

< ?php / / Defining variables

$txt = "Hello World!";

$num = 123456789;

$colors = "Red"; ?>

Page 78: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

62 จากตวอยางขางตน มการประกาศตวแปรไวใชงาน 3 ตวแปรคอ txt มคาเปน “Hello World!” ตวแปร num มคาเปน “123456789” และตวแปร colors มคาเปน “Red”

1.2 ชนดของขอมล ขอมลทสามารถจดเกบไวในตวแปร สามารถแบงออกได 7 ชนดดงน 1.2.1 ขอมลชนดตรรกะ (boolean) คาทเกบในตวแปรประเภทนจะเปนคาจรง (true) หรอคาเทจ (false) นยมใชเพอตรวจสอบเงอนไขบางอยางวาเปนจรงหรอเทจ

ตวอยางท 4.6 การประกาศตวแปรเกบขอมลชนดตรรกะ

< ?php

/ / Assign the value TRUE to a variable

$show_error = true;

var_dump($show_error);

?>

จากตวอยางขางตนประกาศตวแปร “show_error” เปนขอมลชนดตรรกะมคาเปนจรง (true) แลวเรยกใชฟงกชน var_dump() ทภาษา PHP มไวใหใชงาน ซงเปนฟงกชนส าหรบแสดงชนดและคาของตวแปร “show_error” ออกทางเวบเบราวเซอร 1.2.2 ขอมลชนดตวเลขจ านวนเตม (integer) สามารถเกบคาเปนเลขฐานสบ ฐานแปด และฐานสบหกได โดยถาใสเลข 0 น าหนาตวเลขจ านวนเตมเพอบอกวาเปนเลขฐานแปด และใส 0x เพอเปนการบอกวาเปนเลขฐานสบหก ตวเลขจ านวนเตมแบงออกเปน 3 กลมคอ จ านวนเตมบวก (1, 2, 3, ...) จ านวนเตมลบ (-1, -2, -3, ...) และจ านวนเตมศนย

ตวอยางท 4.7 การประกาศตวแปรเกบขอมลชนดตวเลขจ านวนเตมฐานสบ ฐานแปด และฐานสบหก

< ?php

$a = 123; / / decimal number

var_dump($a);

echo "< br> ";

$b = -123; / / a negative number

var_dump($b);

echo "< br> ";

$c = 0x1A; / / hexadecimal number

var_dump($c);

echo "< br> ";

$d = 0123; / / octal number

var_dump($d);

?>

จากตวอยางขางตนประกาศตวแปร “a” เกบตวเลขจ านวนเตมบวกฐานสบ 123 ตามดวยการเรยกใชฟงกชน var_dump() เพอแสดงชนดและคาของตวแปร “a” ออกทางเวบเบราวเซอร จากนนจะแสดง “<br>” ดวยค าสง echo ซงเปนแทกภาษา HTML หมายถงใหขนบรรทดใหม ตวแปร “b” เกบตวเลขจ านวนเตมบวกฐานสบ -123 ตอดวยการเรยกใชฟงกชน var_dump() เพอแสดงผลชนดและคาของตวแปร “b” ออกทางเวบเบราวเซอร แลวใหแสดง “<br>” นนคอใหขน

Page 79: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

63 บรรทดใหม ตวแปร “c” เกบตวเลขจ านวนเตมบวกฐานสบหก 1A ตามดวยการเรยกใชฟงกชน var_dump() ซงจะแสดงผลชนดและคาของตวแปร “c” ออกทางเวบเบราวเซอร ตามดวยใหแสดง “<br>” เพอใหขนบรรทดใหม ตวแปร “d” เกบตวเลขจ านวนเตมบวกฐานแปด 0123 เรยกใชฟงกชน var_dump() เพอแสดงผลชนดและคาของตวแปร “d” ออกทางเวบเบราวเซอร จบการประมวลผลโปรแกรม

1.2.3 ขอมลชนดตวเลขจ านวนทศนยม (floating point number) หมายถงตวเลขทมจดทศนยมหลงเลขจ านวนเตม ตวเลขแบบเศษสวน และตวเลขยกก าลง เปนตน ขอมลชนดน จะรวมถงขอมลชนด float, double และ real พจารณาตวอยางท 4.8 ตอไปน

ตวอยางท 4.8 การประกาศตวแปรเกบขอมลชนดตวเลขจ านวนทศนยม

< ?php

$a = 1.234;

var_dump($a);

echo "< br> ";

$b = 10.2e3;

var_dump($b);

?>

จากตวอยางท 4.8 โปรแกรมประกาศตวแปร “a” มคาเปนตวเลขจ านวนทศนยม 1.234 ตามดวยเรยกใช ฟงกชน var_dump() ใหแสดงผลชนดและคาของตวแปร “a” คอ “float(1.234)” ออกทางเวบเบราวเซอร จากนนจะแสดง “<br>” ซงเปนแทกภาษา HTML หมายถงให ข นบรรทด ใหม ต วแปร “b” เกบต ว เลขยกก าล ง 10 .2x103 ตอด วย เร ยกใช ฟ งกชน var_dump() เพอแสดงผลชนดและคาของตวแปร “b” คอ “float(10200)” ออกทางเวบเบราวเซอร

1.2.4 ขอมลชนดตวอกษร (string) คอขอมลทประกอบดวยตวอกษรหลายตวน ามารวมกน ส าหรบตวอกษรจะก าหนดคาอยในเครองหมายอญประกาศ ( “ ” หรอ Double quote) หรอ อญประการเดยว (‘ ’ หรอ single quote) ทกครง

ผลลพธ

Page 80: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

64 ตวอยางท 4.9 การประกาศตวแปรเกบขอมลชนดตวอกษร

< ?php

$a = 'Hello world!';

echo $a;

echo "< br> ";

$b = "Hello world!";

echo $b;

echo "< br> ";

$c = 'Stay here, I \ 'll be back.';

echo $c;

?>

จากตวอยางขางตนประกาศใหตวแปร “a”, “b” และ “c” เกบขอมลชนดตวอกษร จากนนแสดงตวแปรออกทางเวบเบราวเซอรดวยค าสง echo พรอมสงใหขนบรรทดใหมดวยค าสง echo ตามดวย “<br>” กอนแสดงคาตวแปรถดไป

1.2.5 ขอมลชนดอารเรย (array) หรอตวแปรชด จะเกบขอมลชนดเดยวกนภายใตชอตวแปรเดยวเรยงตอเนองกนในหนวยความจ า มดชน (index) เปนตวระบต าแหนงของแตละขอมลทอยภายใน คาของดชนสามารถเปนไดทงตวเลขหรอตวอกษร โดยดชนของอารเรยจะเรมตนต าแหนงทศนย ส าหรบการประกาศตวแปรประเภทนสามารถท าได 2 รปแบบคอ รปแบบทไมก าหนดดชน และรปแบบทก าหนดดชน ดงตวอยางท 4.10

ตวอยางท 4.10 การประกาศตวแปรเกบขอมลชนดอารเรย ทงแบบก าหนดและไมก าหนดคย

< ?php

$colors = array("Red", "Green", "Blue");

var_dump($colors);

echo "< br> ";

$color_codes = array(

"Red" = > "# ff0000",

"Green" = > "# 00ff00",

"Blue" = > "# 0000ff"

);

var_dump($color_codes);

?>

จากตวอยางขางตนประกาศตวแปร “colors” ในรปแบบไมก าหนดดชน มสมาชก 3 ตวคอ “Red”, “Green” และ “Blue” สวนตวแปร “colors_codes” ประกาศแบบก าหนดดชน มดชน 3 คา คอ “Red”, “Green” และ “Blue” และสมาชกคอ “#ff0000”, “#00ff00” และ “#0000ff”

ผลลพธ

ไมก ำหนดดชน

ก ำหนดดชน

ผลลพธ

Page 81: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

65 1.2.6 ขอมลชนดวตถ (object) เปนชนดขอมลทน าไปใชในการเขยนโปรแกรมเชงวตถ ซงเนอหาในเลมนเนนการเขยนโปรแกรมเชงโครงสรางจงไมขอกลาวในรายละเอยด

1.2.7 ขอมลชนดนล (NULL) เปนตวแปรทไมมคาใดอยเลย แตไมใชคาวางทเกบอยในตวแปรชนดตวอกษร

ตวอยางท 4.11 การประกาศตวแปรเกบขอมลชนดนล

< ?php

$a = NULL;

var_dump($a);

echo "< br> ";

$b = "Hello World!";

$b = NULL;

var_dump($b);

?>

จากตวอยางขางตนโปรแกรมประกาศตวแปร “a” ใหมคาเปน “NULL” ซงเปนการก าหนดใหตวแปรมขอมลชนดนล ตามดวยเรยกใชฟงกชน var_dump() ใหแสดงผลชนดและคาของตวแปร “a” ออกทางเวบเบราวเซอร พรอมสงใหขนบรรทดใหมดวยค าสง echo ตามดวย “<br>” จากนนประกาศตวแปร “b” ใหมคาเปน “Hello world” ถดมาเปลยนใหมคาเปน “NULL” แลวเรยกใชฟงกชน var_dump() ใหแสดงผลชนดและคาของตวแปร “b” ออกทางเวบเบราวเซอร

2. คาคงท (Constant) เปนตวแปรทก าหนดขนมาเพอเกบคาใดๆ ทไมคอยมการเปลยนแปลงเมอมการประมวลผลโปรแกรม รปแบบการใชงานมดงน (ชาญชย ศภอรรถกร, 2558: 41)

ตวอยางท 4.12 การก าหนดคาคงทและการน าตวแปรคาคงทไปใชงาน

< ?php

/ / Defining constant

define("IS_SITE_URL", "http:/ / is.udru.ac.th/ ");

/ / Using constant

echo 'Thank you for visiting - ' . IS_SITE_URL;

?>

define (ชอตวแปร,คา)

รปแบบ

ผลลพธ

Page 82: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

66 จากตวอยางขางตนก าหนดคาคงทชอ “IS_SITE_URL” มคาเปน “http://is.udru.ac.th/” จากนนน าคาคงทไปแสดงรวมกบขอความ “Thank you for visiting-” เมอประมวลผลโปรแกรมจะแสดงขอความ “Thank you for visiting - http://is.udru.ac.th/” ออกทางเวบเบราวเซอร

ค าสงภาษา PHP เบองตน

ค าสงในภาษา PHP เบองตนทนกเขยนโปรแกรมมอใหมจ าเปนตองท าความรจก เนองจากเปนค าสงทมการใชงานบอยมากมดงน (ชาญชย ศภอรรถกร, 2558: 19-22; TUTORIAL REPUBLIC,

2016)

1. การใสค าอธบาย ในการเขยนโปรแกรมจ าเปนตองใสค าอธบายเพอใหเขาใจชดค าสงของโปรแกรม โปรแกรมทสรางขนมาเพอด าเนนการเกยวกบอะไร ใครเปนคนสราง หรอสรางเมอไร เปนตน อกทงยงเปนการชวยนกเขยนโปรแกรมคนอนทเขามาดรหสค าสงเขาใจรายละเอยดของโปรแกรมได ค าอธบายทใสลงไปนนจะไมถกประมวลผลและแสดงคาออกทางเวบเบราวเซอร ภาษา PHP

สามารถใสค าอธบายลงในโปรแกรมได 2 รปแบบ คอ การใสค าอธบายบรรทดเดยว และการใสค าอธบายหลายบรรทด ภาพท 4.2 แสดงการใสค าอธบายลงในโปรแกรม

ภาพท 4.2 การใสค าอธบายลงในโปรแกรม ทมา: (guru99, 2016)

แบบหลายบรรทด

แบบบรรทดเดยว

Page 83: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

67 2. การแสดงผลลพธ ค าสงทใชในการแสดงผลลพธของโปรแกรมภาษา PHP ทใชบอยม 2

ค าสงดงน 2.1 ค าสง echo เปนค าสงทใชเพอแสดงขอความ ตวเลข คาของตวแปร และผลลพธของ

นพจนหรอสมการ ตวอยางการใชงานมดงน

ตวอยางท 4.13 การใชค าสง echo แสดงขอความออกทางเวบเบราวเซอร

< ?php

/ / Displaying string of text

echo "Hello World!";

?>

จากตวอยางท 4.13 โปรแกรมจะใชค าสง echo แสดงขอความ “Hello World!” ออกทางเวบเบราวเซอร

ตวอยางท 4.14 การใชค าสง echo ในการแสดงรหสค าสงภาษา HTML

< ?php

/ / Displaying HTML code

echo "< h4> This is a simple heading.< /h4> ";

echo "< h4 style= 'color: red; '> This is heading with style.< /h4> "

?>

จากตวอยางท 4.14 โปรแกรมใชค าสง echo แสดงขอความ “This is a simple heading.” และ “This is heading with style.” จากการประมวลผลจะแสดงขอมลเหมอนกบการใชแทกภาษา HTML และเปนตวหนาทมขนาดเปน <h4> และขอความ “This is heading with style.” เปนสแดง (style= ‘color:red;’) ออกทางเวบเบราวเซอร

ตวอยางท 4.15 การประกาศตวแปรและแสดงคาของตวแปรออกทางเวบเบราวเซอร

< ?php

/ / Defining variables

$txt = "Hello World!"; $num = 123456789;

$colors = "Red";

/ / Displaying variables

echo $txt;

echo "< br> ";

ประกาศตวแปร

แสดงคาของตวแปร

Page 84: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

68 echo $num;

echo "< br> ";

echo $colors;

?>

จากตวอยางท 4.15 โปรแกรมประกาศตวแปร “txt” ทมคาเปน “Hello World!” ตวแปร “num” มคาเปน 123456789 ตวแปร “colors” มคาเปน “red” จากนนใชค าสง echo

แสดงคาตวแปรทไดประกาศไว และกอนแสดงคาตวแปรถดไปจะสงใหขนบรรทดใหมตามชดค าสง echo “<br>” สนสดการประมวลผล

ตวอยางท 4.16 น าขอความกบนพจนมาแสดงรวมกน ทคนดวยคอมมา (,)

< ?php

echo "10+ 5= ",10+ 5;

?>

จากตวอยางท 4.16 เมอประมวลผลโปรแกรมจะแสดงขอความ “10+5=” และตอ

ดวยผลของการบวกของนพจน 10+5 นนคอ “15”

2.2 ค าสง print เปนอกหนงค าสงใหเลอกใชเพอแสดงผลลพธออกทางเวบเบราวเซอร ซงจะท างานเหมอนค าสง echo แตค าสง print จะไมสามารถแยกขอความกบนพจน หรอคาของตวแปรใดๆ ดวยเครองหมายคอมมา (,) ได ตามตวอยางท 4.17 - 4.19 เปนการน าค าสง print มาใชงานแทนค าสง echo ซงเมอประมวลผลจะท างานเหมอนกบการใชค าสง echo ในตวอยางท 4.13-4.15 แตตวอยางท 4.16 ทผานมาไมสามารถใชค าสง print แทนค าสง echo ได เนองจากค าสง print ไมสามารถแยกขอความ “10+5=” กบนพจน 10+5 ทคนดวยคอมมาได

ขอความ อยระหวาง “ ”

นพจน

ขนบรรทดใหม

Page 85: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

69 ตวอยางท 4.17 แสดงขอความออกทางเวบเบราวเซอรทเหมอนกบตวอยางท 4.13

< ?php

/ / Displaying string of text

print "Hello World!";

?>

ตวอยางท 4.18 รหสค าสงภาษา HTML ออกทางเวบเบราวเซอรทเหมอนกบตวอยางท 4.14

< ?php

/ / Displaying HTML code

print "< h4> This is a simple heading.< /h4> ";

print "< h4 style= 'color: red; '> This is heading with style.< /h4> "

?>

ผลลพธ

ผลลพธ

Page 86: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

70 ตวอยางท 4.19 แสดงคาของตวแปรออกทางเวบเบราวเซอรทเหมอนกบตวอยางท 4.15

< ?php

/ / Defining variables

$txt = "Hello World!";

$num = 123456789;

$colors = "Red";

/ / Displaying variables

print $txt;

print "< br> ";

print $num;

print "< br> ";

print $colors;

?>

ตวด าเนนการ (Operators)

ตวด าเนนการ หมายถง สญลกษณทใชด าเนนการบางอยางระหวางคาสองคา หรอตวแปรสองตว ซงในภาษา PHP มตวด าเนนการดวยกนอยหลายประเภททนกเขยนโปรแกรมจะตองศกษาและท าความเขาใจ เพอจะไดน าไปใชในการเขยนโปรแกรมไดอยางถกตองและมประสทธภาพ ตวด าเนนการแบงออกได 4 ประเภทดงน (ชาญชย ศภอรรถกร, 2558: 43-51; สมศกด โขคชยชตกล, 2550: 27-33; TUTORIAL REPUBLIC, 2016) 1. ตวด าเนนการเกยวกบตวเลข (Arithmetic operators) เปนตวด าเนนการทใชเกยวกบการค านวณทางคณตศาสตร หรอด าเนนการกบคาตวเลข เชน การบวก การลบ การคณ และการหารเปนตน ดงมรายละเอยดตามตารางท 4.1

ตารางท 4.1 ตวด าเนนการเกยวกบตวเลข

ตวด าเนนการ ชอ ตวอยาง ผลลพธ

+ การบวก 1+2 3

- การลบ 5-1 4

* การคณ 5*5 25

/ การหาร 20/5 4

% การหารเอาเศษ 10%3 1

ผลลพธ

Page 87: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

71

++ การเพมคาขน 1 5++ 6

-- การลดคาลง 1 4-- 3

ตวอยางท 4.20 การใชตวด าเนนการเกยวกบตวเลข

< ?php

$x = 10;

$y = 4;

echo($x + $y); / / 0utputs: 14

echo($x - $y); / / 0utputs: 6

echo($x * $y); / / 0utputs: 40

echo($x / $y); / / 0utputs: 2.5

echo($x % $y); / / 0utputs: 2

?>

จากตวอยางขางตนก าหนดคาใหตวแปร “x” เปน 10 ตวแปร “y” เปน 4 น าคาของทงสองตวแปรมาด าเนนการบวก ลบ คณ หาร และหารเอาเศษ พรอมแสดงผลลพธออกทางเวบเบราวเซอรดวยค าสง echo

ตวอยางท 2.21 การน าตวด าเนนการ ++ และ -- ไปใชงาน

< ?php

$x = 10;

echo + + $x; / / Outputs: 11

echo $x; / / Outputs: 11

$x = 10;

echo $x+ + ; / / Outputs: 10

echo $x; / / Outputs: 11

$x = 10;

echo --$x; / / Outputs: 9

echo $x; / / Outputs: 9

$x = 10;

echo $x--; / / Outputs: 10

echo $x; / / Outputs: 9

?>

จากตวอยางท 4.21 โปรแกรมประกาศคาตวแปร “x” มคาเปน 10 แลวเพมหรอลดคาใหตวแปร “x” ซงมกรณตางๆ ดงน กรณเพมคาขน 1 ใหกบตวแปรจะเพมคาใหตวแปรกอนแลวจงน าคานนไปแสดงดวยค าสง ++$x สวนอกกรณจะแสดงคาของตวแปรกอนเพมคาขน 1 คาใหกบตวแปรดวยค าสง $x++ สวนการลดคาลง 1 คาของตวแปรนนจะท างานคลายกนกบการเพมคา ดงนนการ

ผลลพธ

เพมคา 1 ใหกบตวแปรกอน แลวจงแสดงคาทได

แสดงคาในตวแปรกอนจากนนจงเพมคาขน 1

ลดคาลง 1 คาใหกบตวแปรกอนแลวจงแสดงคาทได

แสดงคาในตวแปรกอนจากนนจงลดคาลง 1

Page 88: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

72 วางเครองหมาย ++ หรอ -- ไวหนาหรอหลงตวแปรจะใหผลลพธทตางกน จงควรพจารณาใหดกอนน าไปใชงาน

2. ตวด าเนนการในการก าหนดคา (Assignment operators) เปนตวด าเนนการส าหรบก าหนดคาใหกบตวแปร มตวด าเนนการทใชคอ เทากบ (=) นอกจากนยงม += , -=, *=, /= และ .= ซงมรายละเอยดดงน

ตารางท 4.2 ตวด าเนนการในการก าหนดคาใหกบตวแปร

ตวด าเนนการ รายละเอยด ตวอยาง ผลลพธ

= ก าหนดคาใหตวแปร $x=4; 4

+= เพมคาใหตวแปร $x=4; $x+=1; 5

-= ลดคาของตวแปร $x=5; $x-=2 3

*= คณคาของตวแปร $x=0; $x*=10; 0

/= หารคาของตวแปร $x=50; $x/=10; 5

.= น าคามาตอทายตวแปร $x= “Pretty”; $x.= “Cool”;

Pretty Cool

ตวอยางท 4.22 การน าตวด าเนนการก าหนดคาใหกบตวแปรไปใชงาน

< ?php

$x = 10; echo $x; / / Outputs: 10

$x = 20;

$x + = 30; echo $x; / / Outputs: 50

$x = 50;

$x -= 20;

echo $x; / / Outputs: 30

$x = 5;

$x * = 25;

echo $x; / / Outputs: 125

$x = 50;

$x /= 10;

echo $x; / / Outputs: 5

?>

ก าหนดคา 10 ใหกบตวแปร x และแสดงคาทเกบในตวแปร

ก าหนดคา 20 ใหกบตวแปร x แลวบวกตวแปร x

อก 30 จากนนแสดงคาลาสดของตวแปร x เปน 50

ก าหนดคา 20 ใหกบตวแปร x แลวลบตวแปร x ออก 20 จากนนแสดงคาลาสดของตวแปร x เปน 30

ก าหนดคา 5 ใหกบตวแปร x แลวคณตวแปร x ดวย 25 จากนนแสดงคาลาสดของตวแปร x เปน 125

ก าหนดคา 100 ใหกบตวแปร x แลวหารตวแปร x ดวย 15 จากนนแสดงคาลาสดของตวแปร x เปน 5

Page 89: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

73 จากตวอยางขางตน โปรแกรมจะเรมดวยการก าหนดคาใหกบตวแปร “x” จากนนจะท าการ บวก (+=) ลบ (-=) คณ (*=) และหาร (/=) ตวแปรกบตวเลขทก าหนด แลวใชค าสง echo เพอแสดงคาของตวแปร “x” เชน ก าหนดคาใหตวแปร “x” เปน 20 เมอประมวลผลมาถงค าสง “$x+=30” จะหมายถงใหบวกตวแปร “x” อก 30 แลวแสดงคาทเกบในตวแปรลาสดคอ 50 ออกทางเวบเบราวเซอร

3. ตวด าเนนการเปรยบเทยบ (Comparison operators) เปนตวด าเนนการทใชในการเปรยบเทยบตวแปรกบตวแปร คาคงทกบตวแปร รายละเอยดแสดงในตารางท 4.3

ตารางท 4.3 ตวด าเนนการเปรยบเทยบ

ตวด าเนนการ

ชอ ตวอยาง ผลลพธ

== เทากน $x == $y เปนจรงเมอ คาของตวแปร x เทากบคาของตวแปร y

=== เหมอนกน $x === $y เปนจรงเมอ คาของตวแปร x เทากบคาของตวแปร y และตองเปนชนดขอมลเหมอนกน

!=, <> ไมเทากน $x != $y เปนจรงเมอ คาของตวแปร x ไมเทากบคาของตวแปร y

!== ไมเหมอนกน $x !== $y เปนจรงเมอ คาของตวแปร x ไมเทากบคาของตวแปร y หรอชนดขอมลตางกน

< นอยกวา $x < $y เปนจรงเมอ คาของตวแปร x นอยกวาคาของตวแปร y

> มากกวา $x > $y เปนจรงเมอ คาของตวแปร x มากกวาคาของตวแปร y

<= นอยกวาหรอเทากบ

$x <= $y เปนจรงเมอ คาของตวแปร x นอยกวาหรอเทากบคาของตวแปร y

>= มากกวาหรอเทากบ

$x >= $y เปนจรงเมอ คาของตวแปร x มากกวาหรอเทากบคาของตวแปร y

Page 90: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

74 ตวอยางท 4.23 การน าตวด าเนนการเปรยบเทยบไปใชงาน

< ?php

$x = 25;

$y = 35;

$z = "25";

var_dump($x = = $z); / / Outputs: boolean true

var_dump($x != $y); / / Outputs: boolean true

var_dump($x < $y); / / Outputs: boolean true

var_dump($x > $y); / / Outputs: boolean false

var_dump($x < = $z); / / Outputs: boolean true

var_dump($x > = $y); / / Outputs: boolean false

?>

จากตวอยางขางตน ก าหนดคาใหตวแปร “x” เปน 25 ตวแปร “y” เปน 35 และตวแปร “z” เปน 25 จากนนน ามาด าเนนการเปรยนเทยบในแตละตวด าเนนการดงน เทากบ ($x==$z) ไมเทากน ($x!=$y) นอยกวา ($x<$y) มากกวา ($x>$y) นอยกวาหรอเทากบ ($x<=$z) และมากกวาหรอเทากบ ($x>=$y) เรยกใชฟงกชน var_dump มาแสดงผลของการเปรยบเทยบ ซงผลลพธของการเปลยนเทยบจะเปนขอมลชนดตรรกะ (จรง หรอ เทจ)

4. ตวด าเนนการทางตรรกะ (Logical operators) เปนตวด าเนนการทใชเปรยบเทยบหาคาความจรงของตวแปรหรอนพจน ผลลพธทไดจะเปนคาความจรง ( true) หรอ เทจ (false) ซงจะน าไปใชกบค าสงตรวจสอบเงอนไข เชน ค าสง if(...), while(...) หรอ do… while(...) เปนตน รายละเอยดตวด าเนนการทางตรรกะดงแสดงในตารางท 4.4

ตารางท 4.4 ตวด าเนนการทางตรรกะ

ตวด าเนนการ ชอ ตวอยาง ผลลพธ

and หรอ && และ $x and $y, $x && $y

เปนจรงเมอคาของ $x และ $y เปนจรงทงค กรณอนจะใหคาเปนเทจ

or หรอ || หรอ $x or $y, $x || $y

เปนเทจเมอคาของ $x และ $y เปนเทจทงค กรณอนจะใหคาเปนจรง

! นเสธ !$x เปนจรงเมอ $x เปนเทจ และจะใหคาเปนเทจเมอ $x เปนจรง

xor exclusive or $x xor $y เปนเทจเมอ คาของ $x และ $y เปนจรงทงคหรอเทจทงค กรณทเหลอจะใหคาเปนจรง

เงอนไขในการเปรยบเทยบตามแตละตวด าเนนการ

Page 91: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

75 ตวอยางท 4.24 การน าตวด าเนนการทางตรรกะมาใชงาน

< ?php

$x= 1;

&y= 18

if ($x< 5 && $y< 20)

{ echo “Condition is True”; }

else

{ echo “Condition is False”; }

?>

จากตวอยางขางตน ก าหนดใหตวแปร “x” มคาเปน 1 และตวแปร “y” มคาเปน 18 ใชค าสง if(...) ในการตรวจสอบเงอนไขทมอย 2 เงอนไข โดยเงอนไขแรกคอ “$x<5” นนคอคาของตวแปร x นอยกวา 5 หรอไม และเงอนไขทสองคอ “$y<20” จะตรวจสอบคาของตวแปร “y” นอยกวา 20 หรอไม โดยใชตวด าเนนการเปรยบเทยบ “และ” (&& เปนจรง เมอทกเงอนไขเปนจรง) นนคอทง 2 เงอนไขจะตองเปนจรง จงจะแสดงขอความ “Condition is True” แตถาเปนกรณอนใหแสดงขอความ “Condition is False” ออกทางเวบเบราวเซอร

โครงสรางควบคม

ภาษา PHP มค าสงควบคมทศทางการท างานของโปรแกรมอย 3 กลม ดงน (พรวนา รตนชโชค, 2557: 35-56)

1. กลมค าสงแบบทางเลอก ซงเปนค าสงเปรยบเทยบเงอนไข เพอเลอกกระท าอยางใดอยางหนงในสองทางเลอก หลายทางเลอก หรอทางเลอกเดยว ในทนเงอนไขจะหมายถงนพจนหรอสมการทางคณตศาสตร เชน x=5, y >10 หรอ z<= 50 เปนตน ซงในภาษา PHP มค าสงแบบทางเลอกดงน

1.1 ค าสง if เปนค าสงในการเปรยบเทยบหรอตรวจสอบเงอนไขแบบทางเลอกเดยว หรอมทางเลอกเดยวใหด าเนนการ กรณเงอนไขเปนจรงเทานน มรปแบบการใชค าสงดงน

if(condition){

/ / Code to be executed

}

รปแบบ เงอนไขในการตรวจสอบ

ชดค าสงทตองประมวลผลกรณเงอนไขเปนจรง

Page 92: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

76 สามารถแสดงในรปแบบผงงานดงภาพท 4.3

ภาพท 4.3 ค าสง if แสดงในรปแบบผงงาน

ทมา : (zentut, 2016)

ตวอยางท 4.25 การใชประโยคค าสง if (zentut, 2016)

< ?php

$x = 11;

if(($x > 10){

echo "$x is greater than 10";

}

?>

จากตวอยางขางตน โปรแกรมประกาศตวแปรชอ “x” มคาเปน 11 จากค าสง if จะท าการตรวจสอบเงอนไข โดยเงอนไขของโปรแกรมคอ คาทเกบไวในตวแปร “x” มคามากกวา 10 หรอไม ถาเงอนไขเปนจรง คอมคามากกวา 10 ใหแสดงผล คาตวแปรใน “x” ตอดวย “ is greater than

10” ออกทางเวบเบราวเซอร ถาเปนเทจจะไมมค าสงใหด าเนนการ จบการท างานของโปรแกรม ผลลพธของโปรแกรมคอ “11 is greater than 10” ทงนเพราะคาของตวแปร “x” มคาเปน 11 ซงมากกวา 10

1.2 ค าสง if…else ค าสงเปรยบเทยบเงอนไขแบบสองทางเลอก ซงจะตรวจสอบเงอนไขเหมอนค าสง if แตจะเพมการด าเนนการในสวนของเงอนไขทเปนเทจ มรปแบบและตวอยางการใชงานดงน

ประมวลเมอเงอนไขเปนจรง

เงอนไขในการตรวจสอบ

Page 93: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

77

สามารถแสดงในรปแบบผงงานดงภาพท 4.4

ภาพท 4.4 ค าสง if…else แสดงในรปแบบผงงาน ทมา : (SoraTemplates, 2016)

if(condition){

/ / Code to be executed if condition is true

} else{

/ / Code to be executed if condition is false

}

รปแบบ

ชดค าสงทตองประมวลผลกรณเปนจรง

ชดค าสงทตองประมวลผลกรณเปนเทจ

เงอนไขในการตรวจสอบ

เงอนไขในการตรวจสอบ

ชดค าสงทตองประมวลผลกรณเปนจรง

ชดค าสงทตองประมวลผลกรณเปนเทจ

Page 94: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

78 ตวอยางท 4.26 การใชประโยคค าสง if...else (zentut, 2016)

< ?php

$x = 2;

if($x > 10){

echo "$x is greater than 10";

} else{

echo "$x is less than 10";

}

?>

จากตวอยางโปรแกรมขางตนจะประกาศตวแปรชอ “x” มคาเปน 2 จากนนใชค าสง if ()ตรวจสอบเงอนไข “$x>10” นนคอคาทเกบไวในตวแปร “x” มคามากกวา 10 หรอไม ถาเงอนไขเปนจรง คอมคามากกวา 10 ใหแสดงคาตวแปร x ตามดวย “ is greater than 10” ออกทางเวบเบราวเซอร ถาเปนเทจ คอมคานอยกวา 10 ใหแสดงคาตวแปร x ตามดวย “ is less than 10” ออกทางเวบเบราวเซอร จบการท างานของโปรแกรม หลงจากประมวลผลชดค าสงขางตนแลวจะไดผลลพธของโปรแกรมคอ “2 is less than 10” ทงนเพราะคาของตวแปร “x” มคาเปน 2 ซงนอยกวา 10

1.3 ค าสงเปรยบเทยบเงอนไขแบบหลายทางเลอก หรอมทางเลอกจ านวนมากใหเลอกด าเนนการ ในภาษา PHP มใหเลอกใชงาน 2 ค าสงคอ if…elseif และ switch…case มรายละเอยดดงน

1.3.1 ค าสง if…elseif ซงเปนค าสงส าหรบตรวจสอบเงอนไข ถาเปนจรงกจะด าเนนการตามทก าหนดไว แตถาเปนเทจจะตรวจสอบเงอนไขถดไปทอยหลงค าสง elseif(…) ถายงเปนจรงจะด าเนนการค าสงทอยภายในวงเลบปกกา แตถาเปนเทจกจะตรวจสอบเงอนไขถดไปอกจนกวาจะไมมเงอนไขใดเปนจรงเลยจงจะด าเนนการหลงค าสง else มรปแบบและตวอยางการใชงานดงน

if(condition1){

/ / Code to be executed if condition1 is true

} elseif(condition2){

/ / Code to be executed if the condition1 is false

and condition2 is true

} else{

/ / Code to be executed if both condition1 and

condition2 are false

}

รปแบบ

เงอนไขแรกทใชการตรวจสอบ ชดค าสงทตองประมวลผล

กรณเงอนไขแรกเปนจรง

ชดค าสงทตองประมวลผลกรณเปนเทจ

ชดค าสงทตองประมวลผลกรณเงอนไขแรกเปนเทจ แตเงอนไขท 2 เปนจรง

เงอนไขท 2 ทใชในการตรวจสอบ

Page 95: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

79 สามารถแสดงในรปแบบผงงานดงภาพท 4.5

ภาพท 4.5 ค าสง if… elseif แสดงในรปแบบผงงาน

ทมา : (zentut, 2016)

ตวอยางท 4.27 การใชประโยคค าสง if...elseif (zentut, 2016)

< ?php

$x = 20;

if($x > 0){

echo "$x is greater than zero";

} elseif($x = = 0){

echo "$x is zero";

} else{

echo "$x is less than zero";

}

?>

จากตวอยางโปรแกรมขางตนประกาศตวแปรชอ “x” มคาเปน 20 จากค าสง if() ใชตรวจสอบเงอนไข ($x>0) นนคอคาทเกบไวในตวแปร “x” มคามากกวา 0 หรอไม ถาเงอนไขเปนจรง คอมคามากกวา 0 ใหแสดงคาตวแปร x ตามดวย “ is greater than zero” ออกทางเวบเบราวเซอร ถาเปนเทจใหตรวจสอบเงอนไขหลงค าสง elseif นนคอ ตวแปร “x” มคาเทากบ 0 หรอไม ($x==0) ถาเปนจรงใหแสดงคาตวแปร x ตามดวย “ is zero” ออกทางเวบเบราวเซอร กรณเปนเทจใหแสดงคาตวแปร x ตามดวย “ is less than zero” แลวจบการท างานของโปรแกรม ผลลพธจากการ

ประมวลผลเมอเงอนไขแรกเปนจรง

ประมวลผลเมอเงอนไข 2 เปนจรง

ประมวลผลเมอเงอนไข 3 เปนจรง

เงอนไขแรกในการตรวจสอบ

เงอนไขท 2 ทใชในการตรวจสอบ

เงอนไขท 3 ทใชในการตรวจสอบ

Page 96: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

80 ประมวลผลของโปรแกรมคอ “20 is greater than zero” ทงนเพราะคาของตวแปร “x” มคาเปน 20 ซงมากกวา 0

1.3.2 ค าสง switch…case เปนค าสงทท างานคลายกบค าสง if… elseif แตเปนค าสงทชวยใหการเขยนโปรแกรมสนกระชบขน และแตละทางเลอกการท างานจะมค าสงหยดตรวจสอบเงอนไขดวย break แตถาผลการตรวจสอบไมตรงกบเงอนไขใดเลยจะเขาไปท างานหลงค าสง default

มรปแบบและตวอยางการใชงานดงน

สามารถแสดงในรปแบบผงงานดงภาพท 4.6

ภาพท 4.6 ค าสง switch … case แสดงในรปแบบผงงาน, ทมา : (zentut, 2016)

switch(ตวแปรหรอเงอนไข){

case คาตวแรกทใชเปรยบเทยบกบตวแปรหรอเงอนไข:

/ / code block 1 break;

case คาตวท 2 ทใชเปรยบเทยบกบตวแปรหรอเงอนไข:

/ / code block 2

break;

default:

/ / default code block break;

}

รปแบบ

ประมวลผลมอเงอนไขแรก

เปนจรง

ประมวลผลมอเงอนไข 2

เปนจรง

ประมวลผลมอเงอนไข 3

เปนจรง

ประมวลผลเมอเงอนไขเปนเทจ

เงอนไขหรอคาตวแปรทใชตรวจสอบ

คาแรกทใชเปรยบเทยบกบเงอนไข

คาท 2 ทใชเปรยบเทยบกบเงอนไข

คาท 3 ทใชเปรยบเทยบกบเงอนไข

Page 97: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

81 ตวอยางท 4.28 การใชประโยคค าสง switch … case (zentut, 2016)

< ?php

$x = rand(0,3);

switch($x){

case 0: echo '$x is equal 0';

break;

case 1: echo '$x is equal 1';

break;

case 2: echo '$x is equal 2';

break;

case 3: echo '$x is equal 3';

break;

}

?>

จากตวอยางโปรแกรมขางตนประกาศตวแปรชอ “x” ในการก าหนดคาใหตวแปร “x” จะเรยกใชฟงกชน rand เพอสมตวเลขทอยระหวาง 0 ถง 3 เมอไดตวเลขมาจะน าไปเกบในตวแปร “x” แลวใชค าสง switch() ตรวจสอบคาของตวแปร “x” มคาเทากบคาใด ถามคาเปน 0 ใหแสดงคาตวแปร “x” ตามดวย “ is equal 0” ออกทางเวบเบราวเซอร แตถามคาเปน 1 ใหแสดงคาตวแปร “x” ตามดวย “ is equal 1” ออกทางเวบเบราวเซอร แตถามคาเทากบ 2 ใหแสดงคาตวแปร “x” ตามดวย “ is equal 2” ออกทางเวบเบราวเซอร แตถามคาเปน 3 ใหแสดงคาตวแปร “x” ตามดวย “ is equal 3” ออกทางเวบเบราวเซอร จบการท างานของโปรแกรม ซงการประมวลผลโปรแกรมแตละครงจะไดผลลพธทแตกตางกน เนองจากผลลพธของฟงกชน rand จะเกดจากการสมตวเลขทอยระหวางชวงตวเลขทก าหนด

2. กลมค าสงแบบวนรอบ

ภาษา PHP มค าสงใหด าเนนการแบบวนรอบหรอการประมวลผลชดค าสงซ าๆ แตท าอยางมเงอนไข นนคอค าสง while, do … while, for และ foreach ซงมรายละเอยดดงน

2.1 ค าสง while เปนค าสงใหด าเนนการแบบวนรอบไปจนกวาเงอนไขเปนเทจ จงจะหยดการท างานตามทก าหนด ในการท างานรอบแรกจะตรวจสอบเงอนไขกอน หากเงอนไขเปนจรงจะเขาไปท างานค าสงทอยภายในวงเลบปกกา เมอท างานเรยบรอยจะวนกลบไปตรวจสอบเงอนไขอกครง ถาหากเงอนไขยงเปนจรงจะกลบเขาไปท างานค าสงภายในวงเลบปกกาอก ด าเนนการซ าไปจนกระทงการตรวจสอบเงอนไขเปนเทจจงหยดการท างานแลวออกไปท าค าสงทอยนอกวงเลบปกกา มรปแบบและตวอยางการใชงานดงน

while(condition){

/ / code block to be executed

}

รปแบบ

เงอนไขในการตรวจสอบ

ค าสงทตองด าเนนการซ า

Page 98: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

82 สามารถแสดงในรปแบบผงงานดงภาพท 4.7

ภาพท 4.7 ค าสง while แสดงในรปแบบผงงาน

ทมา : (zentut, 2016)

ตวอยางท 4.29 การใชประโยคค าสง while (zentut, 2016)

< ?php

define('MAX',10);

$counter = 1;

while($counter < = MAX){

echo "The current value of the counter is { $counter} < br> ";

$counter+ + ;

}

?>

จากตวอยางขางตนโปรแกรมมการประกาศคาคงทชอ “MAX” มคาเทากบ 10 แลวประกาศตวแปรชอ “counter” มคาเปน 1 จากนนเรมตรวจสอบเงอนไขดวยค าสง while วาคาทเกบในตวแปร “counter” มคานอยกวาหรอเทากบคาคงท “MAX” หรอไม ($counter<=MAX) ถาเปนจรงใหแสดงขอความ “The current value of the counter is { คาในตวแปร counter }” และขนบรรทดใหม (<br>) ดวยค าสง echo ออกทางเวบเบราวเซอร แลวเพมคาใหกบตวแปร “counter” ขน 1 คา ท าการวนรอบตรวจสอบเงอนไขอก หากเงอนไขเปนจรงจะวนกลบไปท างานซ าไปเรอยๆ จนกวาเงอนไขจะเปนเทจ นนคอ คาของตวแปร “counter” มากกวาคาคงท “MAX” จงหยดการท างาน สนสดการท างานของโปรแกรม

เงอนไขในการตรวจสอบ

ค าสงทตองด าเนนการซ า

Page 99: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

83 2.2 ค าสง do…while เปนค าสงใหด าเนนการแบบวนรอบไปจนกวาเงอนไขจะเปนเทจ จง

จะหยดการท างานตามทก าหนด คลายกบค าสง while แตตางกนตรงรอบแรกของการท างาน ค าสง do…while จะใหเขาไปท างานไดโดยไมตองตรวจสอบเงอนไขหลงท างานเสรจในรอบแรกแลวจงจะตรวจสอบเงอนไข หากเงอนไขเปนจรงจะวนกลบไปท างานซ าไปเรอยๆ จนกวาเงอนไขจะเปนเทจ จงหยดการท างานแลวออกจากการวนรอบ ขอสงเกต ค าสง do…while จะท างานชดค าสงทอยภายในวงเลบปกกาอยางนอยหนงครงเสมอ แมวาเงอนไขในการตรวจสอบจะเปนเทจตงแตรอบแรก.

สามารถแสดงในรปแบบผงงานดงภาพท 4.8

ภาพท 4.8 ค าสง do … while แสดงในรปแบบผงงาน

ทมา : (zentut, 2016)

do {

/ / code block to be executed

} while (expression);

รปแบบ

เงอนไขการตรวจสอบใหสนสดการท างานซ า

ค าสงทตองด าเนนการซ า

เงอนไขการตรวจสอบใหสนสดการท างานซ า

ค าสงทตองด าเนนการซ า

Page 100: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

84 ตวอยางท 4.30 การใชประโยคค าสง do … while (zentut, 2016)

< ?php

$i = 10;

do {

echo $i . '< br> ';

$i--;

} while ($i > 0);

?>

จากตวอยางขางตนโปรแกรมประกาศตวแปรชอ “i” มคาเปน 10 เรมท างานชดค าสงภายในวงเลบปกกาหลงค าสง do โดยรอบแรกจะแสดงคาของตวแปร “i” ออกทางเวบเบราวเซอร แลวขนบรรทดใหม (<br>) จากนนลดคาตวแปร “i” ลง 1 คา ($i--) แลวตรวจสอบเงอนไขวา คาตวแปร “i” มากกวา 0 หรอไม หากเงอนไขเปนจรงใหกลบไปด าเนนการซ าไปเรอยๆ จนกระทงเงอนไขเปนเทจ จงหยดการท างาน สนสดการท างานของโปรแกรม

2.3 ค าสง for เปนค าสงใหด าเนนการแบบวนรอบทระบจ านวนรอบทตองประมวลผลแนนอน จะด าเนนการไปจนกระทงคาตวแปรมคาครบตามเงอนไขทก าหนด โดยค าสง for จะก าหนดคาตวแปรเรมตน เงอนไขการตรวจสอบใหสนสดการท างานซ า และการเพมหรอลดคาตวแปร มรปแบบและตวอยางดงน

for(init_expr; condition_expr; increment_expr){

/ / code block to be executed.

}

รปแบบ

เงอนไขการตรวจสอบใหสนสดการท างานซ า ก าหนดคาตวแปรเรมตน

การเพมหรอลดคาตวแปร

Page 101: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

85 สามารถแสดงในรปแบบผงงานดงภาพท 4.9

ภาพท 4.9 ค าสง for แสดงในรปแบบผงงาน

ทมา : (zentut, 2016)

ตวอยางท 4.31 การใชประโยคค าสง for (zentut, 2016)

< ?php

for ($i = 1; $i < 5; $i+ + ) {

echo $i . '< br/ > ';

}

?>

จากตวอยางขางตนโปรแกรมประกาศคาตวแปรเรมตน เงอนไขการตรวจสอบใหสนสดการท างานซ า และการเพมคาของตวแปรไวภายในวงเลบของค าสง for นนคอตวแปร “i” มคาเปน 1

( $i=1 ) จากนนตรวจสอบเงอนไขวาคาตวแปร “i” นอยกวา 5 หรอไม ( $i < 5 ) พรอมก าหนดใหเพมคาตวแปร “i” ขน 1 คา ( $i++ ) ถาเงอนไขเปนจรงใหแสดง (echo) คาตวแปร “i” ออกทางเวบ

เงอนไขการตรวจสอบใหสนสดการท างานซ า

ค าสงทตองด าเนนการซ า

ก าหนดคาตวแปรเรมตน

การเพมหรอลดคาตวแปร

ก าหนดคาตวแปรเรมตน เงอนไขการตรวจสอบใหสนสดการท างานซ า

การเพมคาตวแปรขน 1 คา

Page 102: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

86 เบราวเซอร พรอมขนบรรทดไม (<br>) ด าเนนงานซ าไปจนกระทงเงอนไขเปนเทจ จงหยดการท างานซ า นนคอคาตวแปร “i” มากกวาคา 5 จบการท างานของโปรแกรม

2.3 ค าสง foreach เปนค าสงวนรอบการท างานเหมอนค าสง for แตค าสงนจะใชกบตวแปรทมขอมลชนดอารเรย ซงจะใชเพอเขาถงขอมลชนดน ส าหรบการวนรอบนนจะวนเทากบจ านวนสมาชกทจดเกบไวในตวแปรอารเรย มรปแบบและตวอยางการใชงานดงน.

จากรปแบบขางตน ค าสง 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”

foreach ($array as $element) {

/ / process element here;

}

รปแบบ

ตวแปรอารเรย

ค าสงทตองด าเนนการซ า

Page 103: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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> ";

}

?>

< /body>

< /html>

จากตวอยางขางตน โปรแกรมประกาศตวแปรอารเรยชอ “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

สนสดรอบ แลววนรอบถดไป

Value is 1

Value is 2

Value is 4

Value is 5 ผลลพธ

Page 104: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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” และขนบรรทดใหม

ผลลพธ

Page 105: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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. ใหนกศกษาเขยนโปรแกรมตามรายละเอยดของอลกอรทมตอไปน

Stop

Score=65

Score>=60

Y N

Write “สอบไมผาน” Write “สอบผาน”

Start

Page 106: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

90 4. ใหนกศกษาเขยนโปรแกรมตามรายละเอยดของอลกอรทมตอไปน

Start

a=25, b=10

sum=0

sum=a + b

Write sum

Stop

Page 107: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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/

Page 108: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 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 ผสอนอธบายและสาธตเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยง

ไมเขาใจ ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญรวมกน

Page 109: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

94 2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom

เพอใหผสอนตรวจ อธบายและชแจงค าตอบทถกตอง

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 5 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 110: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 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

}

รปแบบ

ชอฟงกชน ชดค าสงทจะประมวลผลเขยนไวภายใน {…}

Page 111: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

96 ในการสรางฟงกชนขนมาใชงานสามารถเขยนแทรกไวในภาษา HTML หรอเขยนเฉพาะสครปตภาษา PHP กได ตวอยางท 5.1 แสดงการสรางฟงกชนแทรกไวในไฟลภาษา HTML

ตวอยางท 5.1 การประกาศหรอสรางฟงกชนขนมาใชงานเอง < html>

< head>

< tit le> Writing PHP Function< / tit le>

< /head>

< body>

< ?php

/ * Defining a PHP Function * /

function writeMessage() {

echo "You are really a nice person, Have a nice time!";

}

/ * Calling a PHP Function * /

writeMessage();

?>

< /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 แลวแสดงผลรวมออกทางเวบเบราวเซอร สนสดชดค าสงในฟงกชน เมอ

ประกาศฟงกชน

เรยกใชฟงกชน

เรยกใชฟงกชน โดยไมมการสงผานคา

Page 112: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

97 ตองการใชงานฟงกชนเพยงเรยกชอฟงกชน นนคอ “add_number();” ซงเปนการเรยกใชฟงกชนแบบไมมการสงผานคา

การเรยกใชงานแบบมการสงผานคา

ในบางครงการใชงานฟงกชนตองการความยดหยนมากขน โดยผเขยนโปรแกรมสามารถสรางฟงกชนในลกษณะทมการสงผานคา หรอการสงคาบางคาไปใหฟงกชนน าไปประมวลผลซงมความยดหยนในการใชงานมากกวาการเรยกใชงานแบบไมมการสงผานคา ดงมรปแบบตามตวอยางท 5.3 และ 5.4 ดงน (ชาญชย ศภอรรถกร, 2558: 71) ตวอยางท 5.3 การเรยกใชงานฟงกชนแบบมการสงผานคา

< html>

< head>

< tit le> Writing PHP Function with Parameters< / tit le>

< /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>

จากตวอยางขางตนเปนโปรแกรมส าหรบสรางฟงกชน “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");

?>

เรยกใชฟงกชน โดยมการสงผานคา 2 คาคอ 10 และ 20

เรยกใชฟงกชน โดยมการสงผานคา

Page 113: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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

การคนคา

Page 114: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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

selfAddition($mynum);

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;

สงผานดวยการอางอง ผานตวแปรอารกวเมนต หรอตวแปรรบ

สงผานดวยคา ผานตวแปรอารกวเมนต

ตวแปรพารามเตอร

Page 115: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

100 }

$mynum = 5;

echo $mynum; / / Outputs: 5

/ / Calling Function

selfMultiply($mynum);

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

?>

ตวแปรพารามเตอร หรอตวแปรสง

Page 116: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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";

Page 117: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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)

ส าหรบตวอยางการน าไปใชงานไดแสดงไวในตวอยางท 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";

?>

include(“ชอไฟล”);

รปแบบ

น าตวแปรไปใชงานตอ

Page 118: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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 เปนตน มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.13 การเรยกใชงานฟงกชน isset()

< ?php

$greet = "Hello World!";

if(isset($greet))

{ echo $greet; }

else

{ echo “The variable is not null”; }

?>

จากตวอยางขางตนแสดงการประกาศและก าหนดคาใหตวแปร “greet” มคาเปน “Hello World!” แลวใชค าสง if() รวมกบฟงกชน isset() เพอตรวจสอบการก าหนดใหกบตวแปร “greet” ถาก าหนดคาแลวเงอนไขจะเปนจรงใหแสดงคาตวแปร “greet” ออกทางเวบเบราวเซอร ถายงไมก าหนดคาเงอนไขจะเปนเทจใหแสดงขอความ “The variable is not null” ออกทางเวบเบราวเซอร 2 ฟงกชน unset() ใชยกเลกคาของตวแปร หรอท าลายตวแปรทไมใชงานแลว มรปแบบและตวอยางการเรยกใชงานดงน

isset($ตวแปร)

รปแบบ

unset($ตวแปร)

รปแบบ

Page 119: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

104

ตวอยางท 5.14 การเรยกใชฟงกชน unset()

< ?php

$greet = "Hello World!";

echo $greet; / /Outputs is Hello World!

/ / Calling Function

unset($greet);

echo $greet; / /Outputs is Null

?>

จากตวอยางขางตน แสดงการประกาศ ก าหนดคา และแสดงคาตวแปร “greet” มคาเปน “Hello World!” จากนนเรยกใชงานฟงกชน unset() เพอยกเลกคาตวแปร เมอใชค าสง echo แสดงคาตวแปรอกครง จงแสดงคานลออกทางเวบเบราวเซอร 3 ฟงกชน 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() เปนฟงกชนทใชเปลยนชนดขอมลของตวแปร ซงในบางครงจ าเปนตองมการเปลยนชนดขอมลเพอใหสามารถท างานได เชน เปลยนชนดขอมลจากขอความ เปนตวเลขเพอใชในการค านวณ เปนตน มรปแบบและตวอยางการเรยกใชงานดงน

gettype($ตวแปร)

รปแบบ

settype($ตวแปร, “ชนดของตวแปรทตองการเปลยน”)

รปแบบ

Page 120: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

105

ตวอยางท 5.16 การเรยกใชฟงกชน settype()

< ?php

$data = 42.3;

echo $data; / / outputs is 42.3

echo “<br>”; / / Calling Function

settype($data,integer);

echo $data; / / outputs is 42

?>

จากตวอยางขางตนแสดงการประกาศ และก าหนดคาใหกบตวแปร “data” เปน 42.3 แสดงคาตวแปร (echo) และขนบรรทดใหม (<br>) จากนนเรยกใชงานฟงกชน settype() เพอเปลยนชนดของตวแปรจากตวเลขจ านวนทศนยมเปนตวเลขจ านวนเตม พรอมแสดงคาตวแปร “data” ซงจะมคาเปลยนไปเปน 42

5 ฟงกชน date() เรยกใชฟงกชนนเพอตองการใหแสดงวนทและเวลาปจจบนออกมาตามรหสรปแบบทก าหนด เชน d m y เปนตน ซงรหสรปแบบการแสดงผลวนท และเวลาไดแสดงไวในตารางท 5.1 สวนรปแบบและตวอยางการเรยกใชงานดงน

ตารางท 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

date(รหสรปแบบการแสดงผล)

รปแบบ

Page 121: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

106

รหส รายละเอยด ตวอยางคาทสงกลบ

M ชอเดอนภาษาองกฤษแบบยอ Jan ถง Dec

n เดอนแบบไมมเลข 0 น าหนา 1 ถง 12

t จ านวนวนของแตละเดอน 28 ถง 31

Y ป ค.ศ. 4 หลก เชน 1999 หรอ 2003

y ป ค.ศ. 2 หลก เชน 99 หรอ 03

เวลา

a แสดงค าวา am หรอ pm ตวพมพเลก am หรอ pm

A แสดงค าวา AM หรอ PM ตวพมพใหญ AM หรอ PM

g ชวโมงเปนตวเลขแบบไมมเลข 0 น าหนา 1 ถง 12

G ชวโมงเปนตวเลขแบบไมมเลข 0 น าหนา 0 ถง 23

h ชวโมงเปนตวเลข 2 หลก 00 ถง 12

H ชวโมงเปนตวเลข 2 หลก 00 ถ ง23

i นาทเปนตวเลข 2 หลก 00 ถง 59

s วนาทเปนตวเลข 2 หลก 00 ถง 59

ตวอยางท 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

Page 122: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

107 6 ฟงกชน 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 LITTLE LAMB AND SHE LOVED IT 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() เปนฟงกชนเปลยนขอความตวอกษาภาษาองกฤษจากตวพมพใหญ เปนพมพเลก ซงตวอกษาภาษาไทยไมสามารถใชงานได มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 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 litt le 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” ออกทางเวบเบราวเซอร

strtoupper(ขอความ)

รปแบบ

strtolower(ขอความ)

รปแบบ

Page 123: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

108 8 ฟงกชน substr() ใชส าหรบตดค าในชวงขอความทตองการ โดยระบต าแหนงแรกของ

ขอความทตองการตดค า และจ านวนตวอกษรทตองการตด โดยภาษา PHP จะก าหนดต าแหนงเรมตนของตวอกษรตวแรกของขอความเปนต าแหนงท 0 มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.20 การเรยกใชฟงกชน substr()

< ?php

echo substr('abcdef', 1); / / bcdef

echo substr('abcdef', 1, 3); / / bcd

echo substr('abcdef', 0, 4); / / abcd

echo substr('abcdef', 0, 8); / / abcdef

echo substr('abcdef', -1, 1); / / f

?>

จากตวอยางขางตนแสดงการเรยกใชฟงกชน substr() เพอตดค าทตองการและแสดงผลออกทางเวบเบราวเซอร 9 ฟงกชน trim() ใชตดชองวางทอยขางหนาและหลงของขอความ แตไมสามารถตดชองวางระหวางขอความได มรปแบบและตวอยางการเรยกใชงานดงน

substr(ขอความ,ต าแหนงเรมตนของค าทตองการ,จ านวนตวอกษรทตองการ)

รปแบบ

trim(ขอความหรอตวแปร)

รปแบบ

ขอความทจะตดค า

ต าแหนงเรมตนเปน 1 คอเรมท b ไมระบจ านวนตวอกษรทตองการจะหมายถงใหตดค าถงต าแหนงสดทายของขอความ จะได bcdef

ต าแหนงเรมตนเปน 1 คอเรมท b ระบจ านวนตวอกษรทตองการ 3 ตวอกษร จะได bcd

ต าแหนงเรมตนเปน 0 คอเรมท a ระบจ านวนตวอกษรทตองการ 4 ตวอกษร จะได abcd

ต าแหนงเรมตนเปน 0 คอเรมท a ระบจ านวนตวอกษรทตองการ 8 ตวอกษร จะได abcdef

ต าแหนงเรมตนเปน -1 จะเปนการระบจากขวามาซาย นนคอเรมท f ระบจ านวนตวอกษรทตองการ 1 ตวอกษร จะได f

Page 124: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

109 ตวอยางท 5.21 การเรยกใชฟงกชน trim()

< ?php

$text = "\ t\ tThese are a few words\ t\ t\ t";

var_dump($text);

echo "< p> ";

/ /Calling Functions

$trimmed = trim($text);

var_dump($trimmed);

?>

จากตวอยางขางตนแสดงการประกาศและก าหนดคาตวแปร “text” มคาเปน “\t\tThese are a few words\t\t\t” แลวเรยกใชฟงกชน var_dump ในการแสดงคาและชนดของขอมลของตวแปร “text” จากนนเรยกใชฟงกชน trim() ตวชองวางตวแปร “text” แลวน าไปเกบไวในตวแปร “trimmed” แลวเรยกใชฟงกชน var_dump ในการแสดงคาและชนดของขอมลของตวแปร “trimmed”

10 ฟงกชน 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” แลวใหแสดงคาทเกบในตวแปรอารเรยออกทางเวบเบราวเซอร

explode(“สญลกษณทใชแยกขอความ”,ขอความ)

รปแบบ

\t หมายถง ชองวาง 1 ชอง

ผลลพธ

แยกขอความดวยชองวาง (“ ”)

Page 125: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

110 11 ฟงกชน strlen() ฟงกชนนใชหาความยาวของขอความวามกตวอกษร มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.23 การเรยกใชฟงกชน strlen()

< ?php

$str = 'abcdef';

echo strlen($str); / / 6

?>

จากตวอยางขางตนแสดงการประกาศและก าหนดคาใหตวแปร “str” มคาเปน “abcdef” จากนนเรยกใชฟงกชน strlen เพอหาความยาวของตวอกษรทเกบในตวแปร “str” แลวใหแสดงความยาวของตวอกษรในตวแปร “str” ออกทางเวบเบราวเซอร คาทแสดงจะเปน “6” 12 ฟงกชน str_replace() เปนฟงกชนใชส าหรบการแทนทค า โดยก าหนดขอความทตองการแทนท และค าทตองการใชแสดงแทนท เชน การแทนทค าทไมสภาพดวย “zzz” เปนตน มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.24 การเรยกใชฟงกชน str_replace()

< ?php

echo str_replace(“ubon”, “udon”, “ubonthani”);

?>

จากตวอยางขางตนแสดงการเรยกใชฟงกชน str_replace โดยก าหนด “ubon” เปนขอความทตองการแทนท “udon” ค าทใชแทนท สวน “ubonthani” คอขอความทจะไปแทนท แลว แสดงผลลพธทไดคอ “udonthani” ออกทางเวบเบราวเซอร 13 ฟงกชน floor() ส าหรบฟงกชนจะใชในการปดเศษทศนยมลงเสมอไมสนใจหลกทางคณตศาสตรในการปดเศษจดทศนยม มรปแบบและตวอยางการเรยกใชงานดงน

strlen(ขอความ)

รปแบบ

str_replace(ขอความทตองการแทนท,ค าทใชแทนท,ขอความ)

รปแบบ

floor(ตวเลขทศนยม)

รปแบบ

Page 126: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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() ส าหรบฟงกชนจะใชในการปดเศษทศนยมขนเสมอไมสนใจหลกทางคณตศาสตรในการปดเศษจดทศนยม มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 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 จะปดลงหรอทง และสามารถก าหนดจ านวนหลกของตวเลขทศนยมได มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.27 การเรยกใชฟงกชน round()

< ?php

echo round(3.49); // output is 3

?>

ceil(ตวเลขทศนยม)

รปแบบ

round(ตวเลขทศนยม,ต าแหนงทศนยม)

รปแบบ

Page 127: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

112 จากตวอยางขางตนแสดงการเรยกใชฟงกชน round เพอปดเศษจดทศนยมตามหลกคณตศาสตรของตวเลข 3.49 จะไดผลลพธคอ 3 พรอมแสดงคาออกทางเวบเบราวเซอร 16 ฟงกชน rand() เปนฟงกชนส าหรบสมตวเลขทออกมาเปนจ านวนเตม โดยการเรยกใชฟงกชนจะตองสงคาเรมตนหรอตวเลขต าสดกบคาสนสดหรอตวเลขสงสดในการสมไปใหฟงกชนประมวลผลดวย มรปแบบและตวอยางการเรยกใชงานดงน

ตวอยางท 5.28 การเรยกใชฟงกชน rand()

< ?php

echo rand(1,10); / / Outputs is number between 1 and 10

?>

จากตวอยางขางตนแสดงการเรยกใชฟงกชน rand สมแสดงตวเลขทอยระหวาง 1 ถง 10 ออกทางหนาเวบเบราวเซอร 17 ฟงกชน sort() หนาทในการจดเรยงล าดบขอมลในตวแปรชนดอารเรย มรปแบบและตวอยางเรยกใชงานดงน

ตวอยางท 5.29 การเรยกใชฟงกชน sort()

< ?php

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

foreach ($fruits as $key = > $val) {

echo "fruits[ " . $key . "] = " . $val . "< br> ";

}

?>

จากตวอยางขางตนแสดงการประกาศ และก าหนดตวแปร “fruits” มขอมลเปนอารเรย

จากนนเรยกใชฟงกชน sort() เพอเรยงล าดบขอมล แลวใชค าสง foreach เพอวนรอบแสดงขอมลของตวแปร “fruits” ทมเรยงล าดบออกทางหนาเวบเบราวเซอร

sort($ตวแปรอารเรย)

รปแบบ

rand(ตวเลขต าสด,ตวเลขสงสด)

รปแบบ

Page 128: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

113 18 ฟงกชน is_number() ใชตรวจสอบคาในตวแปรคาเปนตวเลขหรอไม ฟงกชนนจะสงคา

กลบเปนจรงหรอเทจ นนคอเปนจรงเมอคาของตวแปรมชนดขอมลเปนตวเลข มรปแบบและตวอยางเรยกใชงานดงน

ตวอยางท 5.29 การเรยกใชฟงกชน is_number()

< ?php

if(is_numeric("guru"))

{

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” เนองจากเปนตวเลข

is_number($ตวแปรหรอคาขอมล)

รปแบบ

Page 129: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

114

สรป

ฟงกชนหมายถงโปรแกรมยอยทเขยนขนมาเพอท างานอยางใดอยางหนงทมการท างานบอยครง ในภาษา PHP มฟงกชน 2 ประเภทคอ ฟงกชนทผใชงานสรางขนมาเอง ซงในการสรางฟงกชนขนมาใชเอง และฟงกชนทมอยในภาษา PHP อยแลวสรางขนมาใหใชงานไดเลย เชน echo,

print, var_dump(), trim() และ date() เปนตน การสรางฟงกชนสามารถท าไดโดยประกาศฟงกชนและเรยกใชงานฟงกชน ซงการเรยนใชงานม 2 วธคอ แบบไมมการสงผานคา และแบบมการสงผานคา สวนฟงกชนทเรยกใชงานจะมการคนคาไปยงต าแหนงทเรยกใชงาน หรอไมมการคนคากได การสงผานคาใหแกฟงกชนม 2 รปแบบคอ การสงผานดวยคาทจะสงคาผานตวแปรทเรยกวาพารามเตอรเขาไปในฟงกชน สวนภายในฟงกชนจะมตวแปรทเรยกวา อารกวเมนท รอรบคาทสงมาตอนเรยกใชงานฟงกชน อกรปแบบคอ การสงผานดวยการอางองทจะสงคาผานตวแปรเขาไปในฟงกชน หากภายในฟงกชนมการเปลยนแปลงคาตวแปรนน จะท าใหคาตวแปรทอยนอกฟงกชนเปลยนไปดวย ขอบเขตการเรยกใชตวแปรมทงทเปนตวแปรโลคอลทมขอบเขตการเรยกใชอยภายในฟงกชน และตวแปรโกลบอลมขอบเขตการเรยกใชเปนทงโปรแกรม

Page 130: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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 เหลยม

Page 131: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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

Page 132: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 6

เนอหาประจ าบทท 6 การจดการไฟลและไดเรคทอรดวยภาษา PHP

ไฟลขอมล การเปดและปดไฟล การอานขอมลจากไฟล การเขยนขอมลลงไฟล การจดการไฟล การเปลยนชอไฟล การยายไฟล การลบไฟล การท าส าเนาไฟล การอพโหลดไฟล

ไดเรกทอร การเปดและปดไดเรกทอร การอานรายชอไฟลและไดเรกทอรยอยในไดเรกทอร การสรางไดเรกทอร การลบไดเรกทอร การเปลยนชอไดเรกทอร

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนนแลว ผเรยนมพฤตกรรมดงน 1. อธบายเกยวกบไฟลขอมล ไดเรกทอร 2. สามารถเขยนโปรแกรมจดการไดเรคทอร และไฟลขอมลตามแบบฝกหดประจ าบทไดอยางเหมาะสม

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย และสาธต 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

Page 133: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

118 2. กจกรรมการเรยนการสอน

สปดาห 12 (4 ชวโมง) 2.1 ผสอนอธบายและสาธตเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยง

ไมเขาใจ ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญรวมกน

2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom เพอใหผสอนตรวจ อธบายและชแจงค าตอบทถกตอง

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 6 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 134: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 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 สวนรายละเอยดการน าไปใชจะกลาวในหวขอถดไป

Page 135: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

120 ตารางท 6.1 ฟงกชนในภาษา PHP ส าหรบจดการไฟล

ฟงกชน หนาท

fopen() เปดไฟล

fclose() ปดไฟล

fgets() อานขอมลจากไฟลทละ 1 บรรทด

fgetc() อานขอมลจากไฟลทละตวอกษร

fread() อานขอมลจากไฟลทสามารถระบจ านวนความยาวหรอไบตทตองการได

fputs() เขยนขอมลลงสไฟล โดยสามารถก าหนดจ านวนตวอกษรทตองการเขยนได

fwrite() เขยนขอมลลงสไฟล

1 การเปดและปดไฟล

กอนจะด าเนนการใดๆ กบไฟลจะตองเปดไฟลกอนทกครง และหลกจากเปดไฟลและด าเนนการกบไฟลเรยบรอยแลวทกครงจะตองปดไฟลกอนจบโปรแกรม การเปดไฟลเปนการระบชอและพาธของไฟลทตองการเปด พรอมบอกวตถประสงคทเปดไฟลดวย ซงรายละเอยดเกยวกบวตถประสงคหรอวธการเปดไฟล (Mode) ไดแสดงไวในตารางท 6.2 สวนฟงกชนส าหรบการเปดไฟลคอ fopen() มรปแบบการใชงานดงน

ตารางท 6.2 วธการเปดไฟลในภาษา PHP

วธการเปดไฟล (Mode) รายละเอยด

r เปดไฟลทมอยแลว เพออานอยางเดยว ตวชจะเรมทต าแหนงเรมตนของไฟล

r+ เปดไฟลทมอยแลว เพออานและเขยนขอมลในไฟล ตวชจะเรมทต าแหนงเรมตนของไฟล

w เปดไฟลทมอยแลว เพอเขยนทบขอมลเดมของไฟลนน ตวชจะเรมทต าแหนงเรมตนของไฟล กรณทไมมไฟลนนอยในเครองคอมพวเตอร ระบบจะสรางไฟลขนมาใหม

fopen(พาธและชอไฟล,วธการเปดไฟล)

รปแบบ

Page 136: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

121

วธการเปดไฟล (Mode) รายละเอยด

w+ เปดไฟลทมอยแลว เพออานและเขยนทบขอมลเดมของไฟลนน ตวชจะเรมทต าแหนงเรมตนของไฟล กรณทไมมไฟลนนอยในเครองคอมพวเตอร ระบบจะสรางไฟลขนมาใหม

a เปดไฟลทมอยแลว เพอเขยนขอมลตอทายไฟลนน ตวชจะเรมทต าแหนงสนสดของไฟล กรณทไมมไฟลนนอยในเครองคอมพวเตอร ระบบจะสรางไฟลขนมาใหม

a+ เปดไฟลทมอยแลว เพออานและเขยนขอมลตอทายไฟลนน ตวชจะเรมทต าแหนงสนสดของไฟล กรณทไมมไฟลนนอยในเครองคอมพวเตอร ระบบจะสรางไฟลขนมาใหม

เมอใชงานไฟลเรยบรอยกอนจบโปรแกรมใหปดไฟลทกครงดวยฟงกชน fclose() มรปแบบการใชงานดงน

ตวอยางท 6.1 การใชงานฟงกชน fopen() และ fclose()

< ?php

$fh = fopen(“my_settings.txt”, “w”); fclose($fh);

?>

จากชดค าสงขางตนเปนการเปดไฟลชอ “my_settings.txt” เพอเขยนขอมลทบลงไปในไฟลดงกลาว ฟงกชน fopen() จะสงคากลบมาแลวน าไปเกบไวในตวแปร fh ซงเปนหมายเลขอางองหรอต าแหนงทเกบไฟลในหนวยความจ า เมอเปดไฟลแลวทกครงกอนจบโปรแกรมใหปดไฟลดวยฟงกชน fclose() ตามหมายเลขอางองทเกบในตวแปร fh

fclose(หมายเลขอางองไฟล)

รปแบบ

ชอไฟลทตองการเปด

วตถประสงคทเปด

ตวแปรพอยนเตอร

Page 137: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

122 ตวอยางท 6.2 การใชงานฟงกชน fopen() และ fclose() ทมการตรวจสอบไฟลกอนวามอยหรอไม (Tutorial Republic, 2016)

< ?php

$file = "data.txt";

/ / Check the existence of file

if(file_exists($file)){

/ / 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(หมายเลขอางองไฟล,จ านวนไบตทใหอาน)

รปแบบ

ฟงกชน file_exists() ตรวจสอบวาไฟลมอยหรอไม

Page 138: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

123 ตวอยางท 6.3 การใชงานฟงกชน fread() อานขอมลจากไฟล data.txt โดยอานขอมลอยางเดยว (Tutorial Republic, 2016)

< ?php

$file = "data.txt";

/ / Check the existence of file

if(file_exists($file)){

/ / 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);

/ / 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(หมายเลขอางองไฟล)

รปแบบ

หรอระบเปนตวเลข เชน 50 กได

Page 139: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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;

}

}

fclose($file);

?>

จากชดค าสงตวอยางท 6.4 ท าการเปดไฟล “fgetc.txt” แบบอานอยางเดยวดวยฟงกชน fopen() ซงฟงกชนนจะคนคาหมายเลขอางองไฟล จากนนน าคาดงกลาวไปเกบไวในตวแปร file

จากนนตรวจสอบวา คาทเกบในตวแปร file เปนคานลหรอไม ถาเปนจรงหรอเปนคานลใหแสดง (print) ขอความ “ไมสามารถเปดไฟลได” แลวไปท าการปดไฟลดวยฟงกชน fclose() และจบการท างานของโปรแกรม แตถาเปนเทจหรอคาไมเปนนลใหแสดงขอความ “ทดสอบการอานไฟลดงฟงกชน fgetc” จากนนวนรอบ (while) อานขอมลจากไฟลดวยฟงกชน fgetc() แลวน าคาไปเกบไวในตวแปร ch พรอมแสดงคานนดวยจนกวาจะสนสดไฟล ซงไดน าฟงกชน feof() มาตรวจสอบจดสนสดของไฟล โดยฟงกชน feof() จะคนคาเปน true เมอพบจดสนสดไฟล แลวโปรแกรมจะออกจากการวนรอบอานไฟล กอนจบโปรแกรมปดไฟลดวยฟงกชน fclose()

2.3 ฟงกชน fgets() ฟงกชนนจะอานขอมลทละ 1 บรรทดนบจากหมายเลขอางองปจจปนและไมเกนจ านวนไบตทก าหนด รปแบบการใชงานฟงกชนมดงน

fgets(หมายเลขอางองไฟล,จ านวนไบตทตองการ)

รปแบบ

Page 140: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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(หมายเลขอางองไฟล,ขอมลทจะเขยนลงไฟล[ ,จ านวนไบตทใหเขยน] )

รปแบบ

Page 141: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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(หมายเลขอางองไฟล,ขอมลทจะเขยนลงไฟล [ ,จ านวนไบตทใหเขยน] )

รปแบบ

Page 142: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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!");

while(!feof($myfile))

{

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(หมายเลขอางองไฟลเกา,พาธและชอไฟลใหม)

รปแบบ

Page 143: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

128 ตวอยางท 6.8 การใชงานฟงกชน rename() เพอเปลยนชอไฟล file.txt เปน newfile.txt แตเกบไวในไดเรกทอรเดม (Tutorial Republic, 2016)

< ?php

$file = "file.txt";

/ / Check the existence of file

if(file_exists($file)){

/ / 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(พาธและชอไฟลทตองการลบ)

รปแบบ

Page 144: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

129 ตวอยางท 6.9 การใชงานฟงกชน unlink() เพอลบไฟล note.txt ออกจะระบบคอมพวเตอร

< ?php

$file = "note.txt";

/ / Check the existence of file

if(file_exists($file)){

/ / Attempt to delete the file

if(unlink($file)){

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() ในการส าเนาไฟลมรปแบบและตวอยางการน าไปใชงานดงน

ตวอยางท 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

copy(พาธและชอไฟลทตองการท าส าเนา,พาธและชอไฟลปลายทาง)

รปแบบ

Page 145: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

130 if(file_exists($file)){

/ / 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() ตรวจสอบไดเรกทอรทก าลงท างานอย

Page 146: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

131

ฟงกชน หนาท

chdir() เปลยนไปท างานอกไดเรกทอร

mkdir() สรางไดเรกทอร

rmdir() ลบไดเรกทอร

1 การเปดและปดไดเรกทอร ภาษา PHP ใชฟงกชน opendir() ส าหรบเปดไดเรกทอร และฟงกชน closedir() ส าหรบปดไดเรกทอร มรปแบบการใชงานฟงกชนดงน

2 การอานรายชอไฟลและไดเรกทอรยอยในไดเรกทอร ใชฟงกชน 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 ถดมา

opendir(พาธและชอไดเรกทอรทตองการเปด)

รปแบบ

closedir(หมายเลขอางองไดเรกทอรทตองการปด)

รปแบบ

readdir(หมายเลขอางองไดเรกทอร) รปแบบ

Page 147: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

132 ก าหนดคาใหตวแปร file เปนคาวาง ใชค าสง while วนรอบอานรายชอไฟลและไดเรกทอรยอยทอยในไดเรกทอร “phpbook” ดวยฟงกชน readdir() แลวเกบรายชอเหลานนไวในตวแปร file และแสดงคาเหลานนออกทางหนาจอจนกวาจะไมพบไฟลหรอไดเรกทอรยอย ซงฟงกชน readdir() จะคนคาเปน false ใหออกจากค าส ง while จากนนใช ฟงกชน closedir() ในการปดไดเรกทอร “phpbook”

3 การสรางไดเรกทอร ในภาษา PHP ใชฟงกชน mkdir() ส าหรบสรางไดเรกทอรใหม ซงมรปแบบการใชงานฟงกชนดงน

ตวอยางท 6.12 การสรางไดเรกทอรชอ testdir ดวยฟงกชน mkdir() (Tutorial Republic, 2016) < ?php

/ / The directory path

$dir = "testdir";

/ / Check the existence of directory

if(!file_exists($dir)){

/ / Attempt to create directory

if(mkdir($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” สนสดการท างานของโปรแกรม

mkdir(พาธและชอไดเรกทอรทตองการสราง)

รปแบบ

Page 148: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

133 4 การลบไดเรกทอร ใชฟงกชน rmdir() ถาลบไดเรกทอรส าเรจฟงกชนจะคนคา true และถา

ลบไมส าเรจจะคนคา false รปแบบการใชงานฟงกชนมดงน

ตวอยางท 6.13 การลบไดเรกทอร “temp” ดวยฟงกชน rmdir() มชดค าสงดงน < ?php

/ / The directory path

$deldir = "temp";

/ / Attempt to delete directory

if(rmdir($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 ฟงกชนมดงน

และ

rmdir(พาธและชอไดเรกทอรทตองการลบ)

รปแบบ

chdir(พาธและชอไดเรกทอรทตองการเปลยน) รปแบบ

getcwd()

รปแบบ

Page 149: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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.”

Page 150: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

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. จากนนใหอานขอความจากไฟลดงกลาวใหแสดงออกทางโปรแกรมเบราวเซอร

Page 151: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

136

เอกสารอางอง ชาญชย ศภอรรถกร. (2558). สรางเวบแอพพรเคชน PHP MySQL+AJAX jQuery ฉบบสมบรณ. กรงเทพฯ: รไววา. สมศกด โชคชยชตกล. (2550). Insight PHP ฉบบสมบรณ. กรงเทพฯ: โปรวชน

Joyce Farrell. (2013). A Beginner’s Guide to Programming Logic and Design Introductory. 7th ed. China: Course Technology, Cengage Learning. Tutorial Republic. (2016). PHP-tutorial. 2016, May 31. [online], Available HTTP: https://www.tutorialrepublic.com/php-tutorial/ W. Jason Gilmore. (2010). Beginning PHP and MySQL From Novice to Professional. 4th ed. USA.

Page 152: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

แผนบรหารการสอนประจ าบทท 7

เนอหาประจ าบทท 7 การสรางฟอรม (HTML Form) รบสงขอมล การท างานของฟอรม

การสรางฟอรมรบขอมล

ชองรบขอมลตางๆ ในฟอรม การสงผานขอมลระหวางเวบเพจ คกก (Cookie) และ เซสชน (Session)

วตถประสงคเชงพฤตกรรม

เมอศกษาบทเรยนนแลว ผเรยนมพฤตกรรมดงน 1. อธบายเกยวกบฟอรม องคประกอบของฟอรม และการสงผานขอมลระหวางเวบเพจ 2. บอกหลกการท างานของคกก และเซสชน

3. สามารถเขยนโปรแกรมสรางฟอรมรบสงขอมล และแสดงผลขอมลทรบมาจากเวบเซรฟเวอรตามแบบฝกหดประจ าบทไดอยางเหมาะสม 4. สามารถเขยนโปรแกรมทน าคกกหรอเซสชนไปประยกตได

วธสอนและกจกรรมการเรยนการสอน

1. วธสอน

1.1 บรรยาย สาธต 1.2 อภปราย คนควาเพมเตม 1.3 นกศกษาท าแบบฝกหด และผสอนตรวจแบบฝกหด 1.4 มอบหมายแบบฝกหดเปนการบานเพอทบทวนบทเรยน

2. กจกรรมการเรยนการสอน

สปดาห 13-16 (16 ชวโมง) 2.1 ผสอนอธบายและสาธตเนอหา เปดโอกาสใหผเรยนซกถามปญหาในหวขอทยง

ไมเขาใจ ใหผเรยนคนควาเพมเตมจากอนเตอรเนตและเอกสารประกอบการสอน อภปราย และสรปเนอหาสาระส าคญรวมกน

2.2 ผเรยนท าแบบฝกหดประจ าบทและตอบค าถามลงใน Google Classroom เพอใหผสอนตรวจ อธบายและชแจงค าตอบทถกตอง

Page 153: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

138

สอการเรยนการสอน

1. เอกสารประกอบการสอนการเขยนโปรแกรมคอมพวเตอรเพองานสารสนเทศ 1 2. เครองคอมพวเตอร 3. PowerPoint เนอหาบทท 7 4. สอออนไลนชวยสอน : โปรแกรม Google Classroom

การวดผลและประเมนผล

1. การวดผล

สงเกตจากการตอบค าถาม ตรวจแบบฝกหด 2. การประเมนผล

ผเรยนสามารถตอบค าถามและท าแบบฝกหดไดถกตอง รอยละ 80

Page 154: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บทท 7 การสรางฟอรม (HTML Form) รบสงขอมล

การเขยนโปรแกรมบางระบบงานตองการใหผใชกรอกขอมลบางอยางตามทตองการนนจ าเปนจะตองศกษาเกยวกบฟอรมหรอชองรบขอมลเพอทจะไดเลอกใชงานอยางเหมาะสม เชน ระบบงานรบสมครสมาชกหองสมด ทผสมครจะตองกรอกขอมลสวนตวใหกบระบบ เปนตน ซงภายในบทนจะกลาวถงหลกการท างานของฟอรม การสรางฟอรมเพอกรอกรายละเอยดทตองการดวยภาษา HTML การสงผานขอมลระหวางเวบเพจ ทายบทไดเพมเนอหาเกยวกบหลกการท างานของตวแปรประเภทคกก และเซสชนทใชในการตดตามการท างานของผใชในระบบ โดยจะเกบขอมลการใชงานตางๆ ของผใชไว ท าใหงายในการตดตามและเพมความปลอดภยของขอมล เพอเปนพนฐานในการเขยนโปรแกรมระบบงานทมการจดเกบขอมลลงในฐานขอมลตอไป

การท างานของฟอรม

ฟอรม (Form) คอหนาเวบทรวมชองรบขอมลตางๆ เชน ชองกรอกขอความบรรทดเดยว

(text field) ชองกรอกขอความแบบหลายบรรทด (text area) กลองตวเลอก (checkbox) ปมตวเลอก (radio button) รายการตวเลอก (select) และปมกด (button) เปนตน โดยสามารถสรางดวยภาษา HTML พรอมก าหนดวธการสงขอมล และระบไฟลปลายทางทจะสงขอมลไปประมวลผล ซงเปนไฟลประเภทสครปตทสรางดวยภาษาตางๆ เชน สรางดวยภาษา PHP, ASP, JavaScript และ

Perl เปนตน ไฟลสคปตเหลานจะท างานกตอเมอมการรองขอ (request) เขาไปยงเครองเซรฟเวอรเทานน ฟอรมจะไมสามารถแสดงผลจากการปอนขอมลออกทางเวบเบราวเซอรได ตวอยางฟอรมรบขอมลจากภาพท 7.1 เปนหนาจอแรกส าหรบลอกอนกอนเขาใชงานระบบสารสนเทศตางๆ ทผใชมสทธ และภาพท 7.2 แสดงการท างานของฟอรม (guru99, 2016)

ภาพท 7.1 หนาจอลอกอน (Login Form)

Page 155: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

140

ภาพท 7.2 การท างานของฟอรม (Form HTML)

ทมา : (guru99, 2016)

จากภาพท 7.2 หนาเวบ Login form ส าหรบใหผใชกรอกรายละเอยดตามทระบบงานตองการ จากนนกดปมยนยนการท างาน เพอสงขอมลดงกลาวตามวธการสงทก าหนดไปยงไฟลปลายทางทเกบไวในเครองเซรฟเวอร (server.php) ไฟลดงกลาวเมอถกรองขอจะประมวลผลทฝงเซรฟเวอร

การสรางฟอรมรบขอมล

ส าหรบการสรางฟอรมรบขอมลนนจะสรางจากค าสงภาษา HTML ผานเครองมอหรอโปรแกรมประเภท “text editor” เชน Notepad หรอ Editplus เปนตน หรอใช โปรแกรม DreamweaverCS6 กไดตามความถนดของนกเขยนโปรแกรม ค าสงในภาษา HTML ทใชคอ แทก

<form>….</form> มรปแบบการสรางดงน (สมศกด โชคชยชตกล, 2550: 162-162; พรวนา รตนชโชค, 2557: 107-108)

จากรปแบบขางตน แทก <form> ประกอบดวยแอตตรบวตหลกทจะตองก าหนดส าหรบการใชงาน ซงมรายละเอยดทแสดงไวในตารางท 7.1 ดงน

< form name= "form_name" method= "get| post" action= "url">

....

< / form>

รปแบบ

ชอฟอรม วธการสงขอมล

ไฟลปลายทางทจะสงไปประมวลผล

Page 156: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

141 ตารางท 7.1 รายละเอยดแอตตรบวตหลกของ แทก <form>

แอตตรบวต รายละเอยด

Name ก าหนดชอฟอรม เพอใชในการอางถงฟอรม

Action ก าหนดพาธและชอไฟลปลายทางทจะสงขอมลใหไปประมวลผล หรอสามารถระบเปน url ได

Method ก าหนดวธการสงขอมลไปยงไฟลปลายทางทระบไวใน แอตตรบวต Action มอย 2 วธใหเลอกคอ

1. get วธนจะน าคาของชองรบขอมลรวมไปกบไฟลปลายทาง หรอ url ดงภาพท 7.3

2. post การสงขอมลวธนเหมาะกบงานทตองการเกบขอมลเปนความลบ โดยจะไมเหนคาของชองรบขอมลทสงไปยงไฟลปลายทาง ดงภาพท 7.4

Enctype ก าหนดชนดการเขารหสขอมล โดยคาโดยปรยายคอ “application/x-www-form-urlencode” สวนกรณทมการอพโหลดไฟลขนไปเกบไวเซอรเฟอรจะก าหนดคาเปน “multipart/form-data”

ภาพท 7.3 ผลการสงขอมลแบบ get

ทมา : (guru99, 2016)

จากภาพท 7.3 แทก <form> ในภาษา HTML ไดก าหนดคาของแอตตรบวต action เปน

registration_form.php ซงเปนไฟลปลายทางทจะสงขอมลจากชองรบขอมลไปประมวลผล จากนนก าหนดคาของแอตตรบวต method เปน get ซงเปนวธการสงขอมลทน าคาจากชองรบขอมลตอทายไปกบ url ซงจะมองเหนคาขอมลทสงไปมอะไรบาง

Page 157: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

142

ภาพท 7.4 ผลการสงขอมลแบบ post

ทมา : (guru99, 2016)

จากภาพท 7.4 มการก าหนดคาใหกบแอตตรบวตเหมอนกบไฟลในภาพท 7.3 แตตางกนตรงการก าหนดคาใหกบแอตตรบวต method ซงก าหนดคาเปน post นนคอจะไมสามารถมองเหนวาสงคาอะไรบางจากชองรบขอมลไปใหไฟลปลายทางทจะประมวลผล

ชองรบขอมลตางๆ ในฟอรม

ภายในแทก <form> มชองรบขอมลใหเลอกใชตามความเหมาะสมอยหลายชนด สามารถสรางชองรบขอมลโดยใชแทกของภาษา HTML คอ <input>, <textarea>…..</textarea> และ <select>…</select> โดยจะแทรกลงไประหวางแทก <form>...</form> ซงมรายละเอยดการใชงานดงน (ชาญชย ศภอรรถกร, 2558: 140-150; tutorialspoint, 2016) 1. การสรางชองรบขอมลดวยแทก <input> ผานการก าหนดคาใหกบแอตตรบวต type ของแทก <input> ซงมดวยกนอยหลายประเภทดงแสดงตามตารางท 7.2

ตารางท 7.2 รายละเอยดคาทก าหนดใหกบแอตตรบวต type ของแทก <input>

แอตตรบวต type รายละเอยด

<input type="text"> ชองรบบรรทดเดยว ทสามารถก าหนดจ านวนตวอกษรทรบไดและความกวางของชองรบ

<input type="password"> ชองรบรหสผานบรรทดเดยว

<input type="hidden"> ชองรบซอนคา คาทรบจะไมแสดงทหนาเวบ แตสงไปมาระหวางหนาเวบได

Page 158: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

143

แอตตรบวต type รายละเอยด

<input type="checkbox"> กลองตวเลอก เปนตวเลอกทเลอกไดหลายตวเลอก

<input type="radio"> ปมตวเลอก เปนตวเลอกทสามารถเลอกไดเพยงตวเลอกเดยว

<input type="submit"> ปมกดยนยนการท างาน

<input type="reset"> ปมกดยกเลกการท างาน

<input type="button"> ปมกด

<input type="file"> ชองรบชอไฟล ใชส าหรบเลอกชอไฟล เพออพโหลดไปเกบไวบนเซรฟเวอร

ตวอยางการใชงานแทก <input> และก าหนดคาใหกบแอตตรบวต type ทท าไปแทรกไวในแทก <form> ซงในการสรางฟอรมรบขอมลนนจะใชโปรแกรม Dreamweaver ในการด าเนนงาน โดยโปรแกรมไดเตรยมเครองมอ Forms เพอใชสรางฟอรมดงภาพท 7. 5 ดงน

ภาพท 7.5 เครองมอ Forms ทใชในการสรางฟอรม

เครองมอ Form แทก <form> ชองรบบรรทดเดยว ชองรบซอนคา ชองรบหลายบรรทด

กลองตวเลอก ปมตวเลอก รายการตวเลอก ชองรบชอไฟล ปมกด

Page 159: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

144 การสรางฟอรมรบขอมลดวยโปรแกรม Dreamweaver สามารถด าเนนการดงภาพท 7.6

ภาพท 7.6 การสรางฟอรมรบขอมลดวยโปรแกรม Dreamweaver

จากภาพท 7.6 ชดค าสงภาษา HTML เรมตนทโปรแกรม Dreamweaver สรางไวใหคอ

< html>

< body>

< form name= "form1" method= "post" action= "">

< / form>

< /body>

< /html>

ซงสามารถก าหนดคาแอตตรบวตหลกของแทก <form> ไดตามการน าไปใชงาน เชน จากชดค าสงขางตน แอตตรบวต name มคาเปน “form1” แอตตรบวต method มคาเปน “post” และแอตตรบวต action ยงไมระบคา เปนตน นกเขยนโปรแกรมสามารถแกไขหรอก าหนดคาของแอตตรบวตอนเพมเตมไดเชนกน

เมอเรมตนสรางฟอรมดวยแทก <form> แลวตอจากนนจะเปนการเพมชองรบขอมลทน าแทก <input> รปแบบตางๆ มาแทรกภายในแทก <form> ดงน

1. คลกท Form

2.ปรากฏเสนประสแดงหนาจอออกแบบ

3.ท Properties สามารถก าหนดแอตตรบวตของ <form> ได 4.ไฟลปลายทางในการสง

ขอมลไปประมวลผล

5.ชอฟอรม 6.วธการสงขอมล 7.วธการเขารหสขอมล

Page 160: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

145 ตวอยางท 7.1 เพมและก าหนดคณสมบต (Properties) ของชองรบบรรทดเดยว (text field) มขนตอนดงน

1. แทรกตารางหรอแทก <table> เพอจดต าแหนงของชองรบขอมลบนหนาจอใหนาใชงาน ซงจะตองแทรกระหวางแทก <form> หรอเสนประสแดง นนคอตองวางเคารเซอรในเสนประสแดงกอน แลวจงเรมด าเนนการตามขนตอนในภาพท 7.7a ภาพท 7.7b และ ภาพท 7.7c

ภาพท 7.7a การเลอกแทก <table>

ภาพท 7.7b ขนตอนการสรางตาราง

1. ท Insert แลวเลอก Common 2. คลกท Table

จะแสดงหนาจอดงภาพท 7.7b

3. เบองตนก าหนดจ านวนแถวและคอลมนของ Table

4. เลอกรปแบบของ Table

ใหหวตารางแสดงตวอกษรเขม

5. กดปม OK แลวจะแสดงดงหนาจอภาพท 7.7c

Page 161: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

146

ภาพท 7.7c ตารางและการก าหนดคณสมบตของตาราง

2. แทรกชองรบบรรทดเดยวหรอ “text field” วางเคอรเซอรในต าแหนงทจะแทรก จากนนด าเนนการตามขนตอนในภาพท 7.8a ภาพท 7.8b และ ภาพท 7.8c

ภาพท 7.8a ใสรายละเอยดทตองการลงในตาราง

6. ตาราง 2 คอลมน 9 แถว แทรกอยในแทก <form>

7. คณสมบตของตารางใหก าหนดคาดงน ความกวาง (W) ของตารางเปน 60%

ต าแหนงตาราง (Align) เปน “Center”

3. ท Forms คลก “text field” เพอแทรกในต าแหนงทจะใหกรอกชอ

1. พมพขอความตามตวอยาง

2. คลกต าแหนงทจะแทรก “text field”

Page 162: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

147

ภาพท 7.8b การก าหนด Properties ของ “text field” ส าหรบกรอกชอ

ส าหรบการสรางชองรบบรรทดเดยวส าหรบกรอกนามสกลใหท าซ าขนตอนท 2-4 จากนนก าหนด Properties ของ “text field” ส าหรบกรอกนามสกลรายละเอยดตามภาพท 7.8c

ภาพท 7.8c การก าหนด Properties ของ “text field” ส าหรบกรอกนามสกล ผลลพธทไดจะแสดงดงภาพท 7.9

ภาพท 7.9 ผลลพธและชดค าสงการแทรกชองรบบรรทดเดยวส าหรบกรอกชอ และนามสกล

5. Properties ของ “text field” ส าหรบกรอกชอ

4. คลกท “text field” เพอก าหนด Properties

Page 163: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

148 ตวอยางท 7.2 เพมและก าหนดคณสมบต (Properties) ของชองรบรหสผานบรรทดเดยว (text field) โดยจะแทรกตอทายการสรางชองรบขอมลจากตวอยางท 7.1 มขนตอนดงน

ภาพท 7.10 แทรกชองรบบรรทดเดยวส าหรบกรอกรหสผใช

1. พมพขอความตามตวอยาง

2. คลกต าแหนงทจะแทรก “text field”

3. ท Forms คลก “text field” เพอแทรกในต าแหนงทจะใหกรอกรหสผใช

4. คลกท “text field” เพอก าหนด Properties

5. Properties ของ “text field” ส าหรบกรอกรหสผใช

Page 164: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

149 จากนนใหแทรกชองรบรหสผานบรรทดเดยว เพอใหกรอกรหสผาน โดยด าเนนการซ าตามขนตอนท 2-5 ของภาพท 7.10 จากนนก าหนดรายละเอยดเพมเตมดงภาพท 7.11

ภาพท 7.11 แทรกชองรบรหสผานบรรทดเดยวส าหรบกรอกรหสผาน

จะไดผลลพธดงภาพท 7.12

ภาพท 7.12 ผลลพธการแทรกชองรบรหสผานบรรทดเดยวส าหรบกรอกรหสผใช และรหสผาน

6. คลกท “text field” เพอก าหนด Properties

7. Properties ของ “text field” ส าหรบกรอกรหสผาน

Page 165: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

150 ตวอยางท 7.3 เพมและก าหนดคณสมบต (Properties) ของกลองตวเลอก (checkbox) โดยจะแทรกตอทายการสรางชองรบขอมลจากตวอยางท 7.2 มขนตอนดงน

ภาพท 7.13 ขนตอนการเพมชองรบขอมลแบบกลองตวเลอก (checkbox) “วชาการ หนงสอเรยน”

1. พมพขอความตามตวอยาง

2. คลกต าแหนงทจะแทรก “checkbox”

3. ท Forms คลก “checkbox”

4. แสดง “checkbox” พมพขอความตามตวอยางตอทาย “checkbox”

5. คลก “checkbox” เพอก าหนด Properties

6. ชอของ “checkbox” เปน “check_book”

7. คาของ “checkbox” เปน “1”

Page 166: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

151 กลองตวเลอกสามารถสรางไดหลายตว โดยใหท าซ าขนตอน 2-7 แลวก าหนดคณสมบตของแตละกลองตวเลอก ซงชอของกลองตวเลอกจะตงเปนชอเดยวกน เนองจากเปนขอมลประเภทเดยวกน ดงภาพท 7.14

ภาพท 7.14 เพมกลองตวเลอก “นวนยาย เรองสน การตน”

ภาพท 7.15 เพมกลองตวเลอก “วารสาร หนงสอพมพ นตยสาร”

8. ท าซ าขนตอน 2-7 พมพขอความตามตวอยาง

9. คลก “checkbox” เพอก าหนด Properties

10. ชอของ “checkbox” เปน “check_book”

11. คาของ “checkbox” เปน “2”

12. ท าซ าขนตอน 2-7 พมพขอความตามตวอยาง

13. คลก “checkbox” เพอก าหนด Properties

14. ชอของ “checkbox” เปน “check_book”

15. คาของ “checkbox” เปน “3”

Page 167: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

152

ภาพท 7.16 เพมกลองตวเลอก “ทวไป”

ผลลพธจากการเพมกลองตวเลอกแสดงดงภาพท 7.17

ภาพท 7.17 การเพมกลองตวเลอกของประเภทหนงสอทชอบอาน

12. ท าซ าขนตอน 2-7 พมพขอความตามตวอยาง

13. คลก “checkbox” เพอก าหนด Properties

14. ชอของ “checkbox” เปน “check_book”

15. คาของ “checkbox” เปน “4”

16. คลกเมอตองการให “checkbox” มคาเรมตนเปนถกเลอก (Checked)

Page 168: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

153 ตวอยางท 7.4 เพมและก าหนดคณสมบต (Properties) ของปมตวเลอก โดยจะแทรกตอทายการสรางชองรบขอมลจากตวอยางท 7.3 มขนตอนดงน

ภาพท 7.18 ขนตอนการเพมปมตวเลอก “เพศ” (radio button) ส าหรบ “ชาย”

3. ท Forms คลก “radio button”

1. พมพ “เพศ”

2. คลกต าแหนงทจะแทรก “radio button”

4. แสดง “radio

button” พมพ “ชาย” ตอทาย “checkbox”

5. คลก “radio button” เพอก าหนด Properties

6. ชอของ “radio button” เปน “gender” 7. คาของ “radio button” เปน “1”

Page 169: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

154 ปมตวเลอก “เพศ” ตองมทง “ชาย” และ “หญง” ซงปมตวเลอก “ชาย” ไดสรางไปแลว ถดมาใหสรางปมตวเลอก “หญง” ซงจะมขนตอนเหมอนกน ตางกนตรงก าหนดคณสมบตของปมเลอก นนคอใหท าซ าขนตอน 2-6 สวนขนตอนท 7 ก าหนดคาของปมตวเลอกเปน “2” ดงภาพท 7.19

ภาพท 7.19 ขนตอนการเพมปมตวเลอก “เพศ” (radio button) ส าหรบ “หญง”

ผลลพธจากการเพมปมตวเลอก “เพศ” แสดงดงภาพท 7.20

ภาพท 7.20 การเพมปมตวเลอก “เพศ” ปมทใหเลอกคอ “ชาย” และ “หญง”

1. คลก “radio button” เพอก าหนด Properties

2. ชอของ “radio button” เปน “gender” 3. คาของ “radio button” เปน “2”

Page 170: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

155 ตวอยางท 7.5 เพมและก าหนดคณสมบต (Properties) ของชองรบชอไฟล (file field) โดยจะแทรกตอทายการสรางชองรบขอมลจากตวอยางท 7.4 มขนตอนดงน

ภาพท 7.21 ขนตอนการเพมชองรบชอไฟล

3. ท Forms คลก “file field”

1. พมพ “ไฟลภาพผสมคร”

2. คลกต าแหนงทจะแทรก “file field”

4. แสดง “file field” และปม “Browse…” คกน

5. คลก “file field” เพอก าหนด Properties

6. ตงชอเปน “FF_photo”

7.ก าหนดความกวางของ “file field” เปน 40

8.จ านวนตวอกษรท “file field” รบได ถาไมก าหนด “file field” จะรบตวอกษรไดไมจ ากด

Page 171: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

156 ตวอยางท 7.6 เพมและก าหนดคณสมบต (Properties) ของปมกดยนยนและยกเลกการท างาน ปมกดทวไป โดยจะแทรกไวต าแหนงทายของฟอรมมขนตอนดงน

ภาพท 7.22 ขนตอนการเพมปม “Submit”

2. ท Forms คลก “button”

1. เตรยมพนทในการแทรก “button”

3. แสดงปม จากนนใหคลกทปมเพอก าหนด Properties

4. ตงชอเปน “btn_submit” 5. ก าหนดคาเปน “Submit”

6. ประเภทของปม เลอก “Submit form” จะเปนการยนยนสงขอมล

Page 172: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

157 ถดไปท าการเพมปม “Reset” เพอยกเลกขอมล โดยท าซ าขนตอน 1-3 จากภาพท 7.22 จากนนก าหนดคณสมบตใหปมตามรายละเอยดดงภาพท 7.23

ภาพท 7.23 ขนตอนการเพมปม “Reset”

2. การสรางชองรบขอมลดวยแทก <textarea>…..</textarea> หรอชองรบหลายบรรทด ซงเปนชองรบขอควาหลายบรรทด สามารถก าหนดขนาดความกวางและจ านวนบรรทดของชองรบขอมลได รายละเอยดการใชงานตามตวอยางท 7.7

ตวอยางท 7.7 เพมและก าหนดคณสมบต (Properties) ของชองรบหลายบรรทด โดยจะแทรกไวกอนการสรางชองรบขอมลในตวอยางท 7.6 มขนตอนดงน

1. แสดงปม จากนนคลกทปมเพอก าหนด Properties

2. ตงชอเปน “btn_reset” 3. ก าหนดคาเปน “Reset”

4. ประเภทของปม เลอก “reset form” จะเปนการยกเลกขอมล

5. ประเภทของปม เลอก “None” จะเปนปมทวไป

1. พมพ “ทอย” 2. คลกต าแหนงทจะแทรก “Textarea”

Page 173: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

158

ภาพท 7.24 ขนตอนการเพมชองรบหลายบรรทด “ทอย”

3. การสรางชองรบขอมลดวยแทก <select>…</select> หรอรายการตวเลอก เปนชองรบขอมลแบบแสดงรายการใหเลอกมลกษณะคลายเมน ดงรายละเอยดตามตวอยางการใชงานท 7.8

3. ท Forms คลก “Textarea”

4. แสดง “Textarea” ใหคลกเพอก าหนด Properties

5. ตงชอเปน “address”

6. ก าหนดความกวางของชองรบเปน 45

8. เลอกเปน “Multi line” เทานน

7. ก าหนดจ านวนบรรทดของชองรบเปน 5 โดยไมปรากฏ scroll bar

Scroll bar

9. คาเรมตน “Init val” ไมตองก าหนด

10. เลอก “Disabled” เมอตองการให “Textarae” แสดงอยางเดยว และเลอก “Read-only” เมอตองการให “Textarae” อานไดอยางเดยว

Page 174: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

159 ตวอยางท 7.8 เพมและก าหนดคณสมบต (Properties) ของรายการตวเลอก หรอ Select (List/Menu) โดยจะแทรกไวตอทายการสรางชองรบขอมลในตวอยางท 7.7 มขนตอนดงน

3. ท Forms คลก “Select(List/Menu)”

1. พมพ “คณะทสงกด”

2. คลกต าแหนงทจะแทรก “Select (List/Menu)”

4. แสดง “Select(List/Menu)” ใหคลกเพอก าหนด Properties

5. ตงชอเปน “dept” 6. เลอกชนดเปน “List”

7. กดปม “List Values” เพอก าหนดรายการตวเลอก

Page 175: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

160

ภาพท 7.25 ขนตอนการเพมรายการตวเลอก “คณะทสงกด”

12. กดเพม (+) หรอลบ (-) รายการตวเลอกได

14. กดปม “OK” เมอก าหนดรายการตวเลอกเรยบรอย และกลบไปยงหนาจอก าหนด Properties

10.เพมรายการตวเลอกและคาของรายการ

9.ปรากฏหนาจอ “List Values” ใหกรอกรายการตวเลอก

11.เพมรายการตวเลอกถดไป

13. กดเพอจดล าดบรายการตวเลอกกอนหลง

15. กดเลอกรายการตวเลอก ใหเปนคาเรมตน

Page 176: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

161 ผลลพธในการสรางฟอรมรบขอมลในการสมครสมาชดหองสมด แสดงดงภาพท 7.26

ภาพท 7.26 หนาจอฟอรมรบสมครสมาชกหองสมด

การสงผานขอมลระหวางเวบเพจ

จากหวขอทผานมาเราไดสรางฟอรมรบขอมลตางๆ แลวตอไปจะเปนการการเขยนโปรแกรมเพอท าการรบขอมลน าเขาจากฟอรม และน าไปประมวลผล จากฟอรมรบสมครสมาชกเมอผใชกรอกขอมลเรยบรอยแลว และกดปม “Submit” ยนยนการสงขอมลไปยงไฟลทชอ member_list.php ประมวลผลโดยก าหนดทแอตตรบวต action ดงภาพท 7.27

ภาพท 7.27 การก าหนดแอตตรบวตของแทก <form> ท DreamweaverCS6

1. ก าหนดไฟลปลายทาง member_list.php

2. ก าหนดวธการสงขอมล (Method) เปน GET

Page 177: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

162 สวนโปรแกรม member_list.php มหนาทรบคาทผ ใชน าเขา ผานตวแปร $_POST

หรอ$_GET ทก าหนดใหกบแอตตรบวต method โดยใชชอของชองรบขอมลเปนดชน เชน $_GET[‘fname’] เปนคาในชองชอ $_GET[‘lname’] เปนคาในชองนามสกล เปนตน

การแสดงผลลพธวามขอมลน าเขาอะไรบาง จะใชค าสง echo แสดงคาของชองรบขอมลตางๆ ผานตวแปร $_GET ทอางองดวยชอชองรบขอมล รายละเอยดดงภาพท 7.28

ภาพท 7.28 ชดค าสงในโปรแกรม member_list.php ส าหรบแสดงคาออกทางหนาเวบ

คกก (Cookie) และ เซสชน (Session) คณสมบตอกอยางหนงของโปรแกรมภาษา PHP คอ คกกและเซสชน ทมไวส าหรบตดตามและตรวจสอบการท างานของผใช ซงจะชวยเพมความปลอดภย และรกษาขอมลบางอยางของผใชไว เชน การลอกอนเขาสระบบ ระบบจะเกบชอผใชงานไวตลอดจนกวาผใชจะออกจากระบบหรอหมดเวลาการใชงาน เปนตน การท างานในลกษณะนจะสามารถท าไดโดยใชคกก และเซสชน ซงมรายละเอยดดงน (พรวนา รตนชโชค, 2557: 137-150)

ผลลพธ

ผลจากการสงขอมล ซงสามารถปรบรปแบบการแสดงได

Page 178: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

163

1. คกก (Cookie) คกก เปนตวแปรทเครองเซรฟเวอรสงไปเกบไวในเครองของผใช โดยเวบเบราวเซอรจะสงขอมลของผใชทจดเกบไวในเครองมายงเวบเซรฟเวอร พรอมทงน าคกกดงกลาวมาเกบไวในตวแปรท าใหสามารถตรวจสอบคาตางๆ ของผใชได การสรางและใชงานคกกดงตวอยางท 7.9 ตวอยางท 7.9 การใชงานตวแปรคกก

< ?php

$cookie_name = "user";

$cookie_value = "waraporn_kh";

setcookie($cookie_name, $cookie_value, time() + (86400 * 30));

/ / 86400 = 1 day

?>

< html>

< body>

< ?php

if(isset($_COOKIE[$cookie_name] )) {

echo "Cookie '" . $cookie_name . "' is set!< br> ";

echo "Value is: " . $_COOKIE[$cookie_name] ;

} else {

echo "Cookie named '" . $cookie_name . "' is not set!";

}

?>

< /body>

< /html>

จากตวอยางขางตนประกาศตวแปรชอ “cookie_name” มคาเปน “user” และตวแปร “cookie_value” มคาเปน “waraporn_kh” จากนนเรยกใชฟงกชน setcookie เพอสรางตวแปรคกกตามคาทเกบในตวแปร “cookie_name” และมคาตามคาทเกบในตวแปร “cookie_value” และก าหนดตวแปรคกกใหมอาย 30 วน (หนวยเปนวนาท) จากนนแทรกสครปตภาษา PHP ในภาษา HTML โดยใชค าสง if เพอตรวจสอบตวแปรกอนวามคาจรงอยหรอไม หรอหมดอายไปแลว จากการเรยกใชฟงกชน isset() ถายงมคาอยหรอเงอนไขเปนจรงใหแสดงขอความ “Cookie ” ตามดวยชอตวแปร “cookie_name” ตามดวย “ is set !” แลวใหขนบรรทดใหม จากนนแสดงขอความ “Value is: ” ตามดวยคาของตวแปรคกก "cookie_name" ออกทางเวบเบราวเซอร แตถาเงอนไขเปนเทจจะแสดงขอความ “Cookie named ” ตามดวยคาตวแปร “cookie_name” และขอความ “is not set!”

2. เซสชน (Session) เซสชน เปนตวแปรทใชเกบขอมลบางอยางของผใชไวทเครองเซรฟเวอร สามารถน าขอมลไปใชงานในเวบเพจอนๆ ได เนองจากคาของขอมลทเกบในตวแปรเซสชนจะยงอยจนกวาจะถกท าลายหรอเมอผใชปดเวบเบราวเซอร โดยจะมการท างานเมอผใชรองขอเวบเพจผานทางเวบเบราวเซอร เมอเซรฟเวอรไดรบการรองขอจะประมวลผลและสงเวบเพจดงกลาวกลบมาใหกบผใช หากหนาเวบเพจท

Page 179: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

164 มการเรยกใชมค าสง session_start() ซงเปนการก าหนดใหโปรแกรมเรมตนเกบคาของตวแปรเซสชน โดย PHP จะสรางหมายเลขเซสชน (Session ID) แลวสงมายงเครองของผใช ถามผใชหลายคนทรองขอเวบเพจเดยวกน ในเวลาเดยวกนกจะไดรบหมายเลขเซสชนแตจะมคาไมซ ากน มตวอยางการใชงานดงน ตวอยางท 7.10 การใชงานตวแปรเซสชน

< ?php

/ / Start the session

session_start();

?>

< !DOCTYPE html>

< html>

< body>

< ?php

/ / Set session variables

$_SESSION["fav_color"] = "green";

$_SESSION["fav_animal"] = "cat";

echo "Session variables are set.";

?>

< /body>

< /html>

จากตวอยางขางตนโปรแกรมเรยกใชฟงกชน session_start() เพอประกาศการเรมตนใชงาน

ตวแปรเซสชน จากนนแทรกสครปตภาษา PHP ในภาษา HTML โดยก าหนดตวแปรเซสชนชอ “fav_color” มคาเปน “green” และตวแปร “fav_animal” เปน “cat” จากนนแสดงขอความวา “Session variable are set.” นนคอไดก าหนดคาใหตวแปรเซสชนแลว

สรป

ฟอรมหมายถงเวบเพจทรวมชองรบขอมล เชน ชองกรอกขอความ กลองตวเลอก รายการตวเลอก หรอปมกด เปนตน สามารถสรางดวยภาษา HTML พรอมก าหนดวธการสงขอมล (Method)

ระบไฟลปลายทาง (Action) ทจะสงไปประมวลผล การสรางฟอรมขอมลสามารถใชเครองมอประเภท Text Editor เชน โปแกรม Notepad หรอ Editplus และเพอใหสามารถสรางฟอรมไดงายในเอกสารชดนไดเลอกใชโปรแกรม DreamweaverCS6 ซงโปรแกรมไดเตรยมชองรบขอมลตางๆ ในฟอรมใหเลอกใชงาน การก าหนดแอตตรบวตของแตละชองรบขอมล ก าหนดวธการการสงขอมลไปประมวลผลยงไฟลปลายทางทก าหนด และภาษา PHP มตวแปรส าหรบการตดตามและตรวจสอบการท างานของผใชดวยตวแปรคกก และเซสชน โดยตวแปรคกกจะเกบขอมลของผใชไวทเครองไอคเอนตของผใชแลวสงขอมลกลบไปยงเครองเซรฟเวอร และตวแปรเซสชนเปนตวแปรทใชเกบขอมลบางอยางของผใชไวทเครองเซรฟเวอร

Page 180: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

165

แบบฝกหด

ใหนกศกษาเขยนโปรแกรมจากโจทนตอไปน โดยใหรบคาทจ าเปนตองใชในการค านวณผานหนอจอ และหนาจอใหออกแบบตามความเหมาะสม

1. ใหนกศกษาเขยนโปรแกรมรบคา a b และ c จากหนาจอ ตามรายละเอยดทแสดงในผงงานตอไปน

2. ใหนกศกษาเขยนโปรแกรมรบคา score จากหนาจอ ตามรายละเอยดทแสดงในผงงานตอไปน

Start

Read a,b,c

Sum= 0

Sum= a + b + c

Write sum

Stop

Stop

Read Score

Score> = 60

Y N

Write “สอบไมผาน” Write “สอบผาน”

Start

Page 181: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

166 3. ใหเขยนโปรแกรมค านวณรายรบหลงหกภาษของพนกงานแตละคน โดยมเงอนไขวา หากพนกงานมรายไดมากกวา 20,000 บาท ใหหกภาษ ณ ทจาย 5% หากมรายไดต ากวานไมตองหกภาษ ก าหนดใหแสดงคาตอไปน ชอ-สกลพนกงาน รายรบ ภาษหก ณ ทจาย และรายรบหลงหกภาษ

4. เขยนโปรแกรมค านวณคาคอมมชชนของพนกงานขายในแตละเดอน โดยมเงอนไขการคดคาคอมมชชน ดงน

1.1. ถายอดขาย มากกวา 25,000 บาท ใหคาคอมมชชน 7% ของยอดขาย

1.2. ถายอดขาย 2,000 -25,000 บาท ใหคาคอมมชชน 4% ของยอดขาย

1.3. ถายอดขาย ต ากวา 2,000 บาท ใหคาคอมมชชน 2% ของยอดขาย

1.4. ก าหนดใหแสดงคาดงน ชอ-นามสกลพนกงาน ยอดขาย และคาคอมมชชนทไดรบ

5. จงเขยนฟงกชนเพอหาพนทสเหลยม พรอมกบเรยกใชงานฟงกชนดงกลาว การแสดงผลลพธทไดใหก าหนดตามความเหมาะสม

พนท = กวาง x ยาว

6. จงเขยนฟงกชนเพอหาพนทสามเหลยม พรอมกบเรยกใชงานฟงกชนดงกลาว การแสดงผลลพธทไดใหก าหนดตามความเหมาะสม

พนท = 0.5 x ฐาน x สง

7. เขยนโปรแกรมตดเกรด โดยก าหนดเงอนไขดงน โปรแกรมประกอบดวย 2 ไฟล ดงน 7.1 โปรแกรมส าหรบปอน ชอ นามสกล รหสนกศกษา และ คะแนน

7.2 โปรแกรมส าหรบแสดงผลเกรดทได ของนกศกษาคนนนๆ

เงอนไขการตดเกรดใหพจารณาจากตารางตอไปน ระดบคะแนน ความหมาย คาระดบคะแนน คารอยละ

A ดเยยม 4.0 80

B+ ดมาก 3.5 75-79

B ด 3.0 70-74

C+ ดพอใช 2.5 65-69

C พอใช 2.0 60-64

D+ ออน 1.5 55-59

D ออนมาก 1.0 50-54

E ตก 0.0 0-49

Page 182: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

167

เอกสารอางอง

ชาญชย ศภอรรถกร. (2558). สรางเวบแอพพรเคชน PHP MySQL+AJAX jQuery ฉบบสมบรณ. กรงเทพฯ: รไววา. พรวนา รตนชโชค. (2557). การโปรแกรมบนเวลดไวดเวบ. [ม.ป.ท.]. สมศกด โชคชยชตกล. (2550). Insight PHP ฉบบสมบรณ. กรงเทพฯ: โปรวชน

Guru99. (2016). PHP forms handing. 2016, May 31. [online], Available HTTP: https://www.guru99.com/php-forms-handling.html Tutorial Republic. (2016). PHP-tutorial. 2016, May 31. [online], Available HTTP: https://www.tutorialrepublic.com/php-tutorial/

Page 183: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

บรรณานกรม

โครงการสารานกรมไทยส าหรบเยาวชน. (2559). อนเทอรเนต. [ออนไลน], แหลงทมา HTTP:

http://kanchanapisek.or.th/kp6/sub/book/book.php?book=25&chap=6&page=c

hap6.htm

ชาญชย ศภอรรถกร. (2558). สรางเวบแอพพรเคชน PHP MySQL+AJAX jQuery ฉบบสมบรณ. กรงเทพฯ: รไววา. ณฐพงษ วารประเสรฐ และ สธ พงศาสกลชย. (2552). โครงสรางขอมลและอลกอรทม. กรงเทพฯ:

เคทพ คอมพ แอนด คอนซลท. ประสาท เนองเฉลม. (2557). อนเทอรเนตเพอการเรยนร. กรงเทพฯ: โอเดยนสโตร. พรวนา รตนชโชค. (2557). การโปรแกรมบนเวลดไวดเวบ. [ม.ป.ท.]. รงทวา เสารสงห. (2546). การเขยนโปรแกรมคอมพวเตอรเบองตน. กรงเทพฯ: ซเอดยเคชน. วไลพร กลตงวฒนา. (2554). โครงสรางขอมลและขนตอนวธ. อดรธาน: มหาวทยาลยอดรธาน สมศกด โชคชยชตกล. (2550). Insight PHP ฉบบสมบรณ. กรงเทพฯ: โปรวชน

สานนท เจรญฉาย. (2544). การเขยนโปรแกรมและอลกอรทม(กรณตวอยางภาษาซ). กรงเทพฯ: โรงพมพมหาจฬาลงกรณราชวทยาลย วดมหาธาต. อนรรฆนงค คณมณ. (2550). Basic of PHP. นนทบร: ไอดซฯ. โอภาส เอยมสรวงค. (2557). วทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ (ฉบบปรบปรง เพมเตม). กรงเทพฯ: ซเอดยเคชน. 123RF. (2016). Vector - social network laptop.communication in the global

computer networks. 2016, July 25. [online], Available HTTP:

https://www.123rf.com/photo_11888394_social-network-laptop-

communication-in-the-global-computer-networks.html

Aditya varma. (2016). What is Web Server and Different Types of Web Servers?.

2016, July 25. [online], Available HTTP: https://www.fastwebhost.in/blog/ what-is-web-server-and-different-types-of-web-servers/

Appserv. (2559). AppServ คออะไร. [ออนไลน], แหลงทมา HTTP:

https://www.appserv.org/th/

ASAP. (2016). Redes Estruturadas. 2016, July 10. [online], Available HTTP:

http://www.asap-mz.com/?page_id=151

Berners-Lee. (1994). Addressing. 2016, July 20. [online], Available HTTP:

https://www.w3.org/Addressing/URL/url-spec.txt

Page 184: อกสารประกอบการสอนportal5.udru.ac.th/ebook/pdf/upload/183vz1zwU80p1p052289.pdf · 2019-09-08 · รายวิชาการขียนปรกรมคอมพิวตอรຏพืไองานสารสนทศ༛1

170 IBM Knowledge Center. (2016). Type of files. สบคนเมอ 27 พฤษภาคม 2561, จาก https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/ com.ibm.aix. osdevice /filetypes.htm. Guru99. (2016). PHP forms handing. 2016, May 31. [online], Available HTTP: https://www.guru99.com/control-structures-and-loops.html Joyce Farrell. (2013). A Beginner’s Guide to Programming Logic and Design Introductory. 7th ed. China: Course Technology, Cengage Learning. Peter O'Shaughnessy. (2016). Think you know the top web browsers?.

2016, June 25. [online], Available HTTP: https://medium.com/samsung-

internet-dev/think-you-know-the-top-web-browsers-458a0a070175

Php. (2016). Function Reference. 2016, September 20. [online], Available HTTP:

http://php.net/manual/en/function.explode.php

Robert W.Sebesta. (2006). Programming the World Wide Web. 3rd ed. USA: Pearson Education,Inc. 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. W3schools.com. (1999-2018). PHP 5 Tutorial. 2016, July 25. [online], Available HTTP: https://www.w3schools.com/php/default.asp Web Developers Notes. (2016). What is web server – a computer OR a

program?. 2016, July 12. [online], Available HTTP:

https://www.webdevelopersnotes.com/what-is-web-server

W. Jason Gilmore. (2010). Beginning PHP and MySQL From Novice to Professional. 4th ed. USA. Zentut. (2016). PHP if Statement. 2016, June 25. [online], Available HTTP: http://www.zentut.com/php-tutorial/php-if/