สารบญั ก
รายการ หนา
บทที่ 1 Bootstrap 1
2
- ความหมายของเวบ็ ไซต 3
- วิวฒั นาการเวบ็ ไซต 4
- โครงสรางพื้นฐานของ HTML 4
- HTML5 คอื อะไร 4
- CSS คืออะไร 5
- JavaScript คอื อะไร 5
- jQuery คอื อะไร 6
- การออกแบบโครงสรา งเวบ็ ไซต 7
- Bootstrap คืออะไร 11
- การตดิ ตัง้ Bootstrap และจดั เตรียมไฟลก อนใช Bootstrap 24
- การจัดรปู แบบตา งๆ ดวย Bootstrap CSS 31
- การใชง าน Bootstrap Components ตางๆ 32
35
บทที่ 2 PHP 35
47
- เรม่ิ ตน กับ PHP 81
- คําส่งั การแสดงผล PHP 82
- การใช Comment ในภาษา PHP 85
- รูจกั ตวั ดําเนินการในภาษา PHP 88
- การกําหนดเงื่อนใขในภาษา PHP (if..else, switch..case) 88
- ฟงกช นั ดา นวนั ที่และเวลา 89
- Session และ Cookie ในภาษา PHP 93
- การสงคา และรบั คา PHP $ _GET, $ _POST และ $ _REQUEST 94
95
บทที่ 3 MySQL 97
99
- ความหมายของ MySQL
- phpMyAdmin สาํ หรับจัดการฐานขอ มูล MySQL
- การสรางฐานขอมูลใหม
- การตดิ ตอฐานขอมลู MySQL ดวย PHP
- การใชคาํ สัง่ insert เพมิ่ ขอมูลลงตาราง
- การใชคําส่งั Select ดงึ ขอมูลจากฐานขอมลู มาแสดงบนหนาเว็บ
- การใชค ําส่ัง update เพื่อแกไขขอมลู ในตาราง
- การใชคาํ สั่ง delete เพอ่ื ทาํ การลบขอมลู ออกจากตาราง
-
บทที่ 1
bootstrap
1
เว็บไซต (Website) ความหมายของเว็บไซต ประโยชนที่สําคัญ และองคประกอบตางๆ
เว็บไซต (Website) หมายถึง หนาเว็บเพจท่ีจัดทําข้ึน เพ่ือนําเสนอขอมูลตางๆ ผานทางคอมพิวเตอรและ
อินเทอรเน็ต โดยจะมีหนาเว็บเพจหลายๆ หนาที่เช่ือมโยงเขากับไฮเปอรลิงค เพื่อใหสามารถเปดไปยังหนาเพจตางๆ ไดอยาง
งายดายและถกู จัดเก็บไวใน www. (เวิลดไวดเว็บ) โดยเว็บไซตสวนใหญนั้นก็มีท้ังเว็บไซตที่เปดใหเขาชมไดฟรี และเว็บไซตท่ีตอง
สมคั รสมาชกิ และเสยี คา บรกิ าร จงึ จะเขา ใชงานเวบ็ ได ซึ่งขอมูลในเว็บก็จะมีหลากหลายแบบ ขึ้นอยูกับความตองการนําเสนอของ
เจาของเวบ็ ไซต การเรียกดูเว็บไซตจะเรยี กดผู า นทางซอฟตแวร ในลกั ษณะของเบราวเ ซอร
เว็บเบราวเซอร (Web browser) คือโปรแกรมคอมพิวเตอรท่ีใชในการทองเว็บ และมีการจัดเก็บขอมูล
สารสนเทศตางๆ ดวยภาษาเฉพาะ เชน ภาษา HTML ซึ่งก็เปรียบเสมือนกับเปนเคร่ืองมือท่ีใชในการติดตอกับเครือขาย
คอมพิวเตอรขนาดใหญท เี่ รยี กวา เวิลดไวดเ ว็บ นอกจากนี้ยงั สามารถดูเอกสารในเว็บเซิรฟเวอรได ไมวาเว็บเหลาน้ันจะแสดงขอมูล
ในลักษณะของภาพ ระบบมัลตมิ เี ดยี รปู ภาพหรอื ขอ ความ ในปจ จุบันเวบ็ เบราวเซอรท่ีรองรับระบบ HTML 5 สามารถอาน CSS 3
ไดอ ยา งสวยงาม และกําลงั ไดร ับความนยิ มมากทส่ี ุด ก็มี 4 ประเภทดังน้ี
Internet Explorer
Mozilla Firefox
Google Chrome
Safari
โฮมเพจ (Home Page) ก็คือหนาแรกของเว็บไซตเม่ือเปดเขาไปยังเว็บไซตใดเว็บไซตหนึ่ง โดยหนาแรกน้ีจะรวม
เมนูและเร่ืองราวตางๆ ไวมากมาย ซ่ึงก็มคี วามสาํ คัญเปนอยา งมาก เพราะหากหนา แรกมีการออกแบบไดอ ยา งสวยงามและจัดหนา
อยางเปนระเบียบกจ็ ะทาํ ใหผ ชู มเกิดความสนใจและอยากเขา ชมเวบ็ มากขนึ้
เว็บเพจ (Web Page) ก็คือหนาเอกสารตา งๆ ที่อยูในรปู ของ HTML โดยจะนําเสนอขอมูลหรือเรื่องราวตางๆ เปน
หนา ๆ ไป และใชการเชื่อมโยงเพื่อใหส ามารถคลิกไปหนาเว็บเพจแตละหนาไดงายขน้ึ
เว็บ Static คือเว็บที่แสดงผล เพ่ือใหความรูหรือขอมูลแกผูเขาชมเว็บเพียงอยางเดียว ไมสามารถโตตอบหรือรับสง
ขอ มลู กับผูทีเ่ ขา ชมเว็บได ซ่ึงสวนใหญแลวเว็บไซตประเภทนี้ ก็จะเปนเว็บ Gallery รูปภาพ เว็บของบริษัทหรือองคกรตางๆ และ
เวบ็ ใหความรทู ัว่ ไป
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
2
เว็บ Dynamic เปน เว็บไซตท่ีสามารถตอบโต และรับสง ขอ มลู ระหวา งผูเ ขาชมกบั เวบ็ ไซตไ ด ซงึ่ เว็บเหลานีส้ วนใหญก็
จะมรี ะบบเวบ็ บอรด รวมไปถงึ Social Media ประเภทตา งๆ มีการสมคั รสมาชิก หรอื เปน เว็บขายสินคา ออนไลนที่มีระบบแชทกับ
ผูขาย เปน ตน
Web Service เปนบริการดานขอ มลู ทส่ี ามารถดึงขอมูลของอกี เว็บหน่งึ ไปแสดงผลในอีกเวบ็ หนงึ่ ได
Hosting เปนพ้ืนท่ีของคอมพิวเตอรแมขาย ที่ทางผูใหบริการไดทําการจัดสรรมาใหเชา โดยสวนใหญจะมีการใหเชา
เปนแบบรายเดอื น รายปหรือตามแตผูใหบริการกําหนด
อนิ เตอรเ น็ต (Internet) เปนตวั กลางในการเชือ่ มตอใหผคู นสามารถทอ งเวบ็ ไซตต างๆ ไดอ ยางงา ยดาย และชวย
ใหกลุมองคกร ธุรกิจหรือบริษัทสามารถนําเสนอขอมูลของตนลงบนอินเทอรเน็ต ผานทางเว็บไซต เปนการใหความรูและ
แลกเปลี่ยนขอ มูลขาวสารตอกันไดอ ยางมีประสิทธภิ าพ
วิวัฒนาการเว็บไซต
WEB 1.0 คืออะไร
เวบ็ 1.0 เปน เว็บในยุคเร่ิมตนและยังคงมีใหเห็นอยูในปจจุบัน มักมีรูปแบบของไฟลเปนนามสกุลเปน .htm และ .html
ทําหนาท่ีใหขอมูลขาวสารในแบบส่ือสารทางเดียว (One Way Communication) เจาของเว็บไซตหรือผูสงสารจะเปนผูกําหนด
เนื้อหาเองท้ังหมด และตองมีความรูพ้ืนฐานการทําเว็บและยากท่ีจะแบงปนสงตอเนื้อหาออกไป ผูใชหรือผูรับสารมีหนาที่รับรู
ขาวสารเพียงอยา งเดียวไมส ามารถโตตอบได เชน เดยี วกบั สอื่ กระแสหลกั อ่นื ๆ เชน หนังสอื พิมพวทิ ยแุ ละโทรทัศน
WEB 2.0 คอื อะไร
เวบ็ 2.0 เปนเวบ็ ในปจ จุบันท่ีมีการใชอินเตอรเน็ตเพ่ือเขียนบล็อก (Blog), แชรรูปภาพ, รวมเขียนวิกิ(Wiki), แสดงความ
คิดเหน็ (Post Comment), พดู คยุ ถกเถยี ง นินทา ประจาน ใสร า ย ทั้งจากเจาของเว็บไซต หรอื จากคนทเี่ ขามาใชงานเว็บไซต, หา
แหลงขอมูลดวยอารเอสเอส (RSS) เพื่อฟด (Feed) มาอาน รวมท้ังกูเกิล (Google) เว็บยุค 2.0 จะใหความสําคัญกับผูเขาชม
เว็บไซต โดยท่ีผูเขาชมเว็บไซตจะมีสวนรวมตอเว็บไซตมากขึ้น ไมใชแคเขามาชมเว็บไซตที่เจาของเว็บจัดทําข้ึนเทาน้ัน ผูเขาชม
เว็บไซตสามารถสรางขอมูล (Content) ของเว็บไซตข้ึนมาไดเองหรือสามารถกําหนดคําสําคัญของเว็บไซตที่เก่ียวของขอมูล (tag
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
3
content) ทําใหขอมูลในเว็บไซตน้ันมีการ update และพัฒนา ปรับปรุง อยางรวดเร็ว กลายเปนเว็บไซต ท่ีมีรูปแบบของการ
สือ่ สารเปนแบบสองทาง (Two Way Communication)
WEB 3.0 คอื อะไร
เวบ็ 3.0 เปน เวบ็ ในยุคอนาคตอนั ใกล คอื เวบ็ ทม่ี กี ารพฒั นาการตอจากเว็บ 2.0 ความแตกตางคือสรางความฉลาดเทียม
ใหก บั ส่ิงไมม ชี ีวิตใชเ ปน เคร่ืองมือชวยคาดเดาพฤติกรรม วิเคราะหความตอ งการของมนุษย เม่ือไดขอมูลนัน้ มา ระบบจะประมวลผล
อยางมเี หตผุ ลพรอมท้ังแกไ ขสถานการณเฉพาะหนา สรา งสงิ่ ทต่ี องการใหผ ูใ ชเว็บไซตมีการเช่อื มโยงเนื้อหาสมั พนั ธทีม่ คี วามสมั พันธ
กนั กับแหลง ขอ มลู อน่ื ๆ เปนเครอื ขายเดียวทว่ั โลก มีการพัฒนารูปแบบที่เปนมาตรฐานใชรวมกันในแบบเอกซเอ็มแอล (XML) แต
อาจเกิดปญหาการละเมิดลิขสิทธ์ิ เพราะบทความท่ีมีเปนจํานวนมากและอาจไมรูวาแหลงขอมูลใดเปนของเจาของอยางแทจริง
ประกอบกับความไมม นั่ ใจวา ขอมูลที่มอี ยูมากมายมหาศาลน้ัน ขอมูลใดมีคุณภาพ ส่ิงหนึ่งที่นาจะเกิดข้ึนในยุค Web 3.0 คือ การ
แกไขปญหาของขอมูลหรือ Content ท่ีไมมีคุณภาพตางๆ และพัฒนาระบบการจัดการขอมูลในเว็บใหดีขึ้น เพ่ือใหผูเย่ียมชม
สามารถเขาถึงเน้อื หาของเวบ็ ไดดขี ้ึนและตรงตามความตองการ
WEB 4.0 คืออะไร
นอกจากการกลาวถึง Web 3.0 แลว ยังมีการคาดการณเทคโนโลยีเว็บไปถึง WEB 4.0 ซ่ึงมีการเรียกกันวา “A
Symbiotic web” คือ เว็บท่ที ํางานแบบ Artificial Intelligence (AI) ท่ฉี ลาดมากยง่ิ ขึน้ คอมพวิ เตอรสามารถคิดได มีความฉลาด
มากข้ึน ในการอานท้ังเน้ือหา ขอความ และรูปภาพ หรือวีดีโอ สามารถท่ีจะตอบสนองหรือตัดสินใจไดวาจะ load ขอมูลอะไร
จากไหน จึงจะใหป ระสิทธภิ าพดที ี่สุดมาใหผ ูใ ชงานกอนกอน และนอกจากน้ียังมีรูปแบบการนํามาแสดงท่ีรวดเร็ว เว็บ 4.0 จะทํา
ใหเว็บ หรือขอ มลู ตางๆ สามารถทาํ งานไดแ ทบจะทุก อปุ กรณหรอื อาจจะชวยระบุตวั ตนท่แี ทจริงของผูใ ชได
โครงสรางพนื้ ฐานของ HTML
โครงสรางของ HTML จะประกอบไปดวยสวนของคําส่ัง 2 สวน คือ สวนที่เปน สวนหัว (Head) และสวนท่ีเปนเน้ือหา
(Body) โดยมรี ูปแบบคาํ ส่ังดงั นี้
HTML คืออะไร
HTML เปน ภาษาประเภท Markup Language ท่ใี ชในการสรางเว็บเพจข้ึนมา โดยมีแมแบบท่ีมาจากภาษา SGML โดย
HTML จะเปนภาษาในการสรางเว็บ ที่สามารถเรียนรู และทําความเขาใจไดงาย ซ่ึงในปจจุบันก็มีการนํามาใชกันอยางแพรหลาย
และมกี ารพัฒนาและกาํ หนดมาตรฐานจากองคกร World Wide Web Consortium (W3C)
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
4
อธบิ ายงา ยๆ HTML คอื ภาษาหลักท่ีนํามาใชในการเขียนเว็บเพจข้ึนมา เพื่อใหไดหนาเว็บเพจท่ีสมบูรณท่ีสุด โดยจะใช
<Tag></Tag> ในการกําหนดการแสดงผลของ HTML ท่ีแสดงอยูบนหนาเว็บเพจ และเน่ืองจาก HTML ยอมาจากคําวา
Hypertext Markup Language จึงมีความหมายโดยรวมวา เปนภาษาในการเขียนเว็บเพจที่ใช Tag กําหนดการแสดงผลบนเว็บ
เพจท่ีตางเชือ่ มโยงถึงกันใน Hyperspace ผา น Hyperlink นน่ั เอง
HTML5 คือ
ภาษามารก อัปทใ่ี ชสาํ หรับเขียน website ซ่ึง HTML5 นเี้ ปน ภาษาที่ถูกพฒั นาตอ มาจากภาษา HTML และพัฒนาข้ึนมา
โดย WHATWG (The Web Hypertext Application Technology Working Group) โดยไดมีการปรับเพิ่ม Feature หลายๆ
อยา งเขามาเพอื่ ใหผพู ัฒนาสามารถใชง านไดงายมากยิ่งข้นึ
ขอดขี อง HTML5
1. เวบ็ ไซตท ีส่ รา งจากภาษา HTML5 สามารถแสดงผลไดก บั ทกุ web browser
2. HTML5 จะชวยลดการใชพวกปลั๊กอินพิเศษอยางพวก Adobe Flash, Microsoft Silverlight, Apache Pivot
สนบั สนุน วดิ โี อ และ องคประกอบเสยี ง รวมทง้ั ส่อื มลั ตมิ เี ดยี ตางๆมากข้ึน โดยไมต องใช Flash
3. มกี ารจดั การขอ ผดิ พลาดทด่ี ขี นึ้
4. สครปิ ตใ หม ท่ีจะมาแทนทีส่ คริปตเ ดิม (เขยี นโคดสน้ั ลง)
5. HTML5 มคี วามเปนอิสระสงู (คลายๆ XML )
6. HTML5 ทํางานควบคูกับ CSS3 ไดดี ชวยใหสามารถเพ่ิมลูกเลนตางๆบนเว็บไซตไดสวยงามมากยิ่งขึ้น (CSS คือสวน
แสดงผล ทน่ี กั ออกแบบสามารถกําหนดสีสัน ตําแหนง ลักษณะเวลานําเมาสไปแหยแลวมีกระตายโผลออกมาจากโพรง
หรอื จบั กอนวัตถใุ นหนาเวบ็ ฯ ใหชิดซายชิดขวา สวน CSS3 คือเวอรช่ันที่ 3 ของ CSS )
Features ใหมๆ ของ HTML5
1. Semantic Markup : การเพิ่ม Element ที่ อา นงา ยมากข้ึน และชว ยให เราทํา SEO ไดมปี ระสิทธิภาพมากย่งิ ข้นึ
2. Form Enhancements : เพิ่มความสามารถของ Form ตางๆ ไมวาจะเปน Input type, Attribute หรือ แมแต
Element
3. Audio / Video: รองรบั การอานไฟลเสียง และ วดี โี อ โดยไมจาํ เปนตอ งใช Embed Code ของ Third Party
4. Canvas : ใชในการวาดรูป โดยจําเปน ตองใช JavaScript ชว ย
5. Content Editable: สามารถแกไ ข Content ไดโดยตรงผา นทางหนาเว็บ
6. Drag and Drop : ลากวางObject ได เพ่อื เพ่มิ การ ตอบสนองระหวางระบบกบั ผใู ช
7. Persistent Data Storage : มีการจัดการทด่ี ีข้ึน โดยเกบ็ ขอ มลู ลงบนเคร่ืองของผใู ช
CSS คอื อะไร
CSS คือ ภาษาที่ใชสําหรับตกแตงเอกสาร HTML/XHTML ใหมีหนาตา สีสัน ระยะหาง พ้ืนหลัง เสนขอบและอ่ืนๆ
ตามทตี่ อ งการ CSS ยอ มาจาก Cascading Style Sheets มลี กั ษณะเปน ภาษาทีม่ ีรปู แบบในการเขียน Syntax แบบเฉพาะและได
ถูกกาํ หนดมาตรฐานโดย W3C เปน ภาษาหนึ่งในการตกแตงเวบ็ ไซต ไดรับความนยิ มอยา งแพรห ลาย
JavaScript คืออะไร
JavaScript คือ ภาษาคอมพิวเตอรสําหรับการเขียนโปรแกรมบนระบบอินเทอรเน็ต ที่กําลังไดรับความนิยมอยางสูง
Java JavaScript เปน ภาษาสคริปตเชิงวัตถุ (ที่เรียกกันวา "สคริปต" (script) ซ่ึงในการสรางและพัฒนาเว็บไซต (ใชรวมกับ
HTML) เพื่อใหเว็บไซตของเราดูมีการเคล่ือนไหว สามารถตอบสนองผูใชงานไดมากข้ึน ซึ่งมีวิธีการทํางานในลักษณะ "แปลความ
และดาํ เนินงานไปทีละคําส่ัง" (interpret) หรือเรียกวา ออบเจ็ค โอเรียนเต็ด(Object Oriented Programming) ท่ีมีเปาหมายใน
การ ออกแบบและพัฒนาโปรแกรมในระบบอนิ เทอรเ น็ต สาํ หรบั ผูเขียนดวยภาษา HTML สามารถทํางานขามแพลตฟอรมได โดย
ทาํ งานรว มกบั ภาษา HTML และภาษา Java ไดท ั้งทางฝง ไคลเอนต (Client) และ ทางฝง เซริ ฟเวอร (Server)
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
5
jQuery คือ
jQuery คอื JavaScript Library ซึ่งถูกออกแบบมาเพอ่ื ใหการเขยี น JavaScript นนั้ งา ยขนึ้ เนอ่ื งจากการใช JavaScript
เพื่อประยุกตกับงานเว็บ (Client-side JavaScript) นั้นสิท่ียุงยาก อาทิเชน ความไมเขากันของเว็บเบราวเซอรแตละคาย, DOM
,API เปนตน jQuery จงึ ถือกาํ เนดิ มาโดยเตรียมฟง กชันและออบเจกตตางๆทจี่ าํ เปน ไวใ หใ นรปู ของ Library ดงั นั้นโคด ท่ีเราเคยตอง
เขียนดวย JavaScript หลายๆบรรทดั ก็อาจเขยี นไดสน้ั ลงเหลือเพยี งแคบรรทัดเดยี วเทานัน้
jQuery ประกอบดวยฟเจอรต างๆ ดงั น้ี
- HTML/DOM manipulation
- CSS manipulation
- HTML event methods
- Effects and animations
- AJAX
- Utilities
การออกแบบโครงสรา งเว็บไซต
สวน Header
สวนอิลิเมนต header นั้นจะไมเหมือนกับอิลิเมนต head นั้นท่ีเราเพ่ิงพูดไป สวน header จะอยูภายใตแท็ก body
และมกั จะมเี นือ้ หามากมายทีบ่ งบอกสวนหัวตามหนา ที่ของมัน
<html>
<head>
<title>Tuts Town</title>
</head>
<body>
<header></header>
</body>
</html>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
6
ในสว นของ Main
สวนของ main ของเว็บไซตเราจะเปนสวนขอมูลที่สําคัญท่ีสุด มีรายการของธุรกิจตางๆ ในเมืองท่ีเว็บไซตเรากลาวถึง
ดังนั้นเนอ้ื หาตางๆ ตองใสไ วภายใต อิลเิ มนต main เราจะคุยเกี่ยวกับแทก็ ที่เล็กลง (อยางเชนกลุมสามกลุมดานลาง คือ กลุมท่ีพัก
อาศัย (Sleep) อาหาร (Food) และ รานคา (Shop) ภายใตแ ท็กใหญ main ในบทเรยี นถัดไปเราจะเพมิ่ เนือ้ หาเขา ไปเพ่มิ เตมิ
สว นของ Footer
สวนของ footer คือสวนสุดทายของเว็บไซตเรา เรามักจะเห็น link บางอยางท่ีนี่เสมอ อยางเชน Facebook และ
Twitter หรือขอความสน้ั ๆ ที่ใหผชู มรวู า ใครสรางเว็บนขี้ ้นึ มา
เราจะเขียนประโยคภูมิใจนาํ เสนอภายใตอิลิเมนต footer น้ี
1<footer> </footer>
Bootstrap คืออะไร
รูจ กั กบั Front-end Framework
กอ นอน่ื ตอ งเขา ใจกอ นครบั วา Bootstrap น้มี นั คือ Front-end Framework ตัวหนึง่ คาํ วา front-end หมายถงึ สว นท่ี
แสดงผลให Users ท่ัวไปเห็น พูดงายๆ ก็คือหนาเว็บไซตของเรานั่นเอง สวนคําวา framework นั้นจะหมายถึง ส่ิงที่เขามาชวย
กําหนดกรอบของการทํางานใหเปนไปในทางเดียวกันครับ ในสมัยกอน เรายังไมมี framework ปญหาที่เราพบเปนประจําในการ
ทํางานรว มกันกค็ ือ ตา งคนตา งทาํ คนหนง่ึ เขยี นแบบหน่ึง สวนอีกคนก็เขียนอีกแบบหนึ่ง พอใครจะมาแกงานตอ หรือพัฒนาตอ ก็
จะไมเขาใจกัน เพราะไมไดมีการกําหนดขอตกลงกันไวลวงหนา ทําใหเสียเวลาโดยใชเหตุ framework จะเขามาแกปญหาตรงน้ี
ครับ โดยมันจะเปนตวั กาํ หนดใหสมาชิกในทมี เขา ใจตรงกัน ปฏิบัตไิ ปในแนวทางเดยี วกัน สมมติ วาโจทยของเราคือการสรางกลอง
ส่ีเหลยี่ มสีน้ําเงินขึ้นมาสักกลองหนึ่ง ถาเราใช framework แลวละก็ พนักงานแตละคนจะใชวิธีเดียวกันในการสรางกลองน้ีขึ้นมา
แมวาพวกเคาจะไมไดคุยกันเลยก็ตาม และพนักงานคนอื่นๆ ท่ีไมเคยทราบโจทยมากอน ก็จะสามารถรูไดทันทีวาโคดท่ีพวกเคา
เขยี นข้นึ มามนั คอื การสรา งกลอ งสนี ้าํ เงิน
Bootstrap คืออะไร?
Bootstrap มันก็คือ Front-end Framework ตัวหน่ึง ท่ีจะชวยใหการพัฒนาเว็บไซตของเราเร็วข้ึน งายขึ้น และเปน
ระบบมากขึ้น ซึ่งคําวา Bootstrap นี้ในภาษาอังกฤษมันมักจะหมายถึง “ส่ิงท่ีชวยทําใหงายข้ึน” หรือ “สิ่งท่ีทําไดดวยตัวของมัน
เอง” ซึ่งในท่นี นี้ า จะหมายความวา ถา เราใช Bootstrap แลว เราก็ไมจาํ เปน ตอ งไปหาอะไรมาเพิ่มอีก
Bootstrap ใหอะไรมาบาง
สิง่ ท่ี Bootstrap ใหม า มี 4 อยา ง ดังนคี้ รับ
1. Scaffolding : grid system จํานวน 12 คอลมั น สามารถเลือกใชไดท้ังแบบ fixed และแบบ fluid
2. Base CSS : style sheets สําหรับ html elements พื้นฐาน เชน typography, tables, forms
และ images
3. Components : style sheets สําหรับส่ิงท่ีเราตองใชบอยๆ ไมวาจะเปน navigation,
breadcrumbs รวมไปถงึ pagination
4. JavaScript : jQuery plugins ตา งๆ ไมวาจะเปน modal, carousel หรือ tooltip
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
7
การติดตง้ั Bootstrap และจดั เตรียมไฟลก อนใช Bootstrap
ใหเราไป Download Bootstrap มาตดิ ตง้ั กอนครบั เมื่อเราแตกไฟลอ อกมา เราจะได 3 folders ดังนี้ครับ
https://getbootstrap.com/docs/3.3/
css
เกบ็ style sheets ของ Bootstrap
img
เก็บ sprite image สาํ หรับ icons ตางๆ
js
เกบ็ jQuery plugins ตางๆ
จากนนั้ ใหเราสรา งไฟล โฟลเดอร ชื่อวา “bootstrap ”ขน้ึ มา ภายใน C:\AppServ\www\ ตามน้ี
จากนัน้ ใหเ รานาํ ไฟลท ี่ Download มากอนหนา ไฟลใสใน โฟลเดอร ชือ่ วา “bootstrap ” ภายใน C:\AppServ\www\ ตามน้ี
จากน้นั ใหเ ราสรางไฟล index.html ข้นึ มาครับ แลว ใสโ คด html ตามนี้
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
8
เมื่อไดไ ฟล index.html มาแลว ใหเราเพ่มิ style sheets ของ Bootstrap เขา ไปท่ี <head> ครับ
เราตอ งการจะทํา responsive web ใหเราเพ่ิม style sheets ของ Bootstrap สําหรับ responsive เขาไปอีกตัว
แลวกําหนดคา ของ viewport ตามโคดดา นลา งน้ีครบั
เพ่ือใหเราสามารถใชง าน JavaScript ที่ Bootstrap เตรียมมาได ใหเ รา Download jQuery มาใสไ วใน folder js
ของเรา แลว ใสโ คด ดานลางนี้กอนปด <body>
http://jquery.com/download/
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
9
Grid System
Grid System
มีเอาไวสําหรับแบงหนาจอการแสดงผลออกเปนสวนๆ โดยแบงตามแนวต้ังเปนซ่ึงคิดจากความกวางของ
หนา จอทง้ั หมดโดยแบงออกเปน 12 สวนดว ยกัน ซ่ึงเจา grid ใน bootstrapมันก็มีอยูด วยกนั 4 รปู แบบ
.col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1 .col-md-1
รูปภาพจาก Bootstrap – แสดงใหเห็นวา 1 row = 12 cols
ซ่งึ หนว ยท่ีเปน 12 น้ี เราสามารถเฉลี่ยแตล ะสว นไดต ามความตอ งการ อยางเชน
.col-md-8 .col-md-4 .col-md-4
.col-md-4 .col-md-6 .col-md-4
.col-md-6
รูปตัวอยางการเฉลย่ี แตล ะสว นใหไมเกิน 12 cols ซ่ึงเวลาเขียนโคดน้ีเอง เราจะตองเร่ิมตนดวย class ท่ีชื่อวา
“row” และสราง element ภายในดวย prefix class เร่ิมตนวา “col-หนวยหนาจอ-เลขคอลัมน” ส่ิงที่เราตองระบุ
เพิม่ เติมลงไปก็มี 2 คา ดวยกันคอื หนว ยหนา จอ และ เลขคอลัมน
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
10
หนวยหนาจอใน Bootstrap เวอรชนั่ ใหมน้ีมีทั้งหมด 4 แบบใหเลือกเรียกใชไดตามสะดวก ซ่ึงแตละหนวยก็ควบคุมการ
แสดงผลตามขนาดหนา จอ(หนว ยเปน pixel) ตามที่ Bootstrap กาํ หนดไวใ นตอนแรก ซ่งึ ดไู ดจ ากรปู ภาพ
Extra small devices Small devices Medium devices Large devices
Phones( <768px) Tables(>=768px) \destops(>=992px) Deastops(>=1200px)
Grid Horizontal at all
behavior times Collapsed to start, horizontal above breakpoints
Container 750px 970px 1170px
width None(auto)
Class .col-sm- .col-md- .col-lg-
prefix .col-xs-
แสดงขอมลู การเรียกใชในแตละหนวยหนา จอ
สรุปจากภาพดา นบนดงั นี้
XS :: ใชก บั หนา จอขนาดเล็กกวา Ipad แนวตง้ั ลงมา (หนา จอสมารท โฟนตา งๆ)
SM :: ขนาดหนาจอตง้ั แต Ipad แนวต้ัง
MD :: ขนาดความกวางตํ่าสดุ ท่หี นาจอ Ipad แนวนอน
LG :: หนาจอท่กี วางกวา 1200 pixels ขึ้นไป หรือใหเ หมาะสมกับขนาดหนา จอโนต บุคมาตราฐาน
container
ก็คอื class ตวั นงึ ใน Bootstrap ครับ เอาไว กําหนดกรอบการแสดงผลของเน้ือหาในหนาจอท่ีมีขนาดไมเทากันครับ ซ่ึง
ถา เว็บของเรารนั บนมือถือหรอื วา tablet container เน่ยี มนั จะแสดงเนอื้ หาเวบ็ ของเราเตม็ จอ
ซ่ึงขอ ดขี อง container เองคือชว ยควบคมุ การแสดงผลระหวา งอปุ กรณไดโดยท่ีเราไมจําเปนตองสราง class อื่นมาคอย
จัดการวัตถขุ างในเอง เพราะ container น้นั ถกู เขียนมาใหย ดื หยนุ กับขนาดหนาจอแตล ะแบบอยแู ลว
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
11
การจดั รูปแบบตา งๆ ดว ย Bootstrap CSS
Media Queries
เอาไวใชสําหรับการ แกไ ข หนา จอ Bootstrap
ตัวอยา ง Media Types รปู แบบตา ง ๆ
@media print
@media screen
@media speech
@media projection
@media tv
ตัวอยา งการใชงาน @media print
ในขนั้ ตอนของการพิมพห นา เวบ็ ไซต เราอาจจะตองการซอ นเนือ้ หาบางสว นและแสดงเนือ้ หาบางสว นเทานน้ั เราสามารถ
เขยี นคาํ ส่งั ไดใน @media print ดังนี้
@media print {
#header {display:none;}
#content {display:block;}
#footer {display:none;}
}
จากโคด css ดานบนจะเห็นวาเราสามารถใชคําส่ัง display:none ปดสวน header และ footer และแสดงเฉพาะ
content ท่ีเราตองการจะพมิ พอ อกมา
ตวั อยา งการใชง าน @media screen
เปนคําส่ังท่ีนิยมใชพัฒนาเว็บไซตใหแสดงผลในขนาดหนาจอท่ีแตกตางกัน เพราะปจจุบันอุปกรณสมารทโฟนมีขนาด
หนาจอท่ีหลากหลายมาก โดยเราสามารถใชคําส่ัง @media screen เพื่อกําหนดการแสดงผลใหเหมาะสมกับหนาจอในแตละ
ขนาดได ตัวอยา งเชน
/* iPhone 2G-4S (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
12
Typography
ก็คอื การแสดงขอความตัวอักษรในหนาจอนั้นๆ ก็คือ การออกแบบตัวอักษรและการจัดวางฟอนตใหเหมาะสม สวยงาม
กับพน้ื ท่ีวา งและองคป ระกอบตา งๆ
<h1> - <h6>
<mark> สาํ หรับทาํ ไฮไลทต ัวหนงั สอื
<blockquote> สําหรับทําบล็อคเขยี นสว นหน่ึงของขอความ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
13
<pre> ใชแสดงขอความตามขอมูลจริงๆ เชน ถามีการพิมพ space เขามาตอนเก็บขอมูลก็จะเก็บ
space จิงๆ ลงไปดวย
<p class="text-…."> สําหรับการแสดงสขี องตวั หนงั สือ
<p class="bg-…"> สาํ หรบั การแสดงสีพื้นหลังของตวั หนงั สอื
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
14
สาํ หรับ class อื่นๆ มีดังนี้
.lead - สําหรับทาํ ตัวหนาหวั ขอ ยอ หนา และทง้ิ ระยะหา งดานบนและลางของยอ หนา
.small - ทําตัวหนังสือใหตวั เลก็ กวา ปกติ
.text-left - จัดตาํ แหนงตวั หนังสอื แสดงทางซา ยมือ
.text-center - จัดตําแหนง ตวั หนงั สือไวต รงกลาง
.text-right - จัดตาํ แหนง ตวั หนงั สือไวดา นขวามอื
.text-justify
.text-nowrap - บงั คับใหไ มตดั บรรทดั ตวั หนงั สอื ลงบรรทดั ใหม
.text-lowercase - แปลงตัวหนังสอื เปน ตัวเล็กทั้งหมด
.text-uppercase - แปลงตัวหนงั สอื เปนตวั ใหญทั้งหมด
.text-capitalize – แปลงตวั หนงั สอื เปน ตวั เลก็ ใหญใ หถูกตอ ง
Tables
ตารางพนื้ ฐาน.
ตารางสลบั ลาย (Striped)
เพ่ิม class .table-striped ในการสลับแถวใหเ ปนแบบมา ลาย ภายใน tag <tbody>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
15
ตารางแบบมเี สนขอบ (Bordered)
เพิ่ม class .table-bordered ในการสรา งเสน ขอบในทุกๆ ดา น และทุกๆ ชอ งตาราง
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
16
เนนเมอ่ื วางเมาส (Hover)
เพิม่ class .table-hover เมื่อตองการใหต ารางมแี ถบเมอ่ื นาํ เมาสว าง (Hover)
ตารางแบบรวมหลายๆ แบบ
เราสามารถกาํ หนด class ใหก บั ตารางไดห ลายๆ แบบพรอ มกัน
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
17
ตารางแบบกระชบั (Condensed)
เพ่ิม class .table-condensed เพื่อกระชบั ตารางตามขอมลู โดยเปนการลด cell-padding ลงคร่ึงหน่งึ และยอตารางตามขอ มูล
ตารางแบบ Responsive
สามารถใช class .table-responsive ใน tag <div> ซึ่งจะแสดง scroll ดา นลางเมื่อหนา จอมีขนาดนอ ยกวาขนาดตาราง
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
18
Forms
Bootstrap แนวตั้งแบบฟอรม (เริ่มตน)
Bootstrap แบบอินไลน
เปน from ท่มี พี วก input อยูในแถวเดียวกนั
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
19
Bootstrap แบบแนวนอน
ตัวนี้จะเปนฟอรมตามแนวนอน โดย input ตางๆ ปกติ จะอยูคนละแถวกันครับ จะมีอยูแถวเดียวกันก็เพียง label
เทาน้นั ซงึ่ Horizontal form นน้ั มกี ารนํา grid system มาใชงาน
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
20
Buttons
Button ใน Bootstrap น้ันมีหลายสีสันใหเลือก ซ่ึงเราสามารถกําหนด class ใหกับ element ตางๆ ไดเชน <a>,
<button> และ <input>
รูปแบบปมุ
• .btn-default
• .btn-primary
• .btn-success
• .btn-info
• .btn-warning
• .btn-danger
• .btn-link
ปมุ สามารถนํามาใชใน <a> , <button> หรือ <input>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
21
Images
จัดการรูปภาพดว ย Bootstrap มีหลายแบบใหเราเลือกใชทั้งปรับเปลี่ยนขนาดไดเองอัตโนมัติตามการเปล่ียนแปลงของ
ขนาดหนา จอ หรือแตง กรอบรปู ภาพเปนวงกลม วงรี ส่ีเหล่ยี ม ซ่ึงการใชง านก็งายๆ แคเ พิ่มคลาสเขา ไปเลก็ นอ ย
การแตง กรอบรูปภาพ
การใสขอความอธบิ าย (caption) ในแตล ะภาพ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
22
การทําแกลเลอรีภ่ าพ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
23
Icons
เครอื่ งมอื ที่ชวยใหการออกแบบ icon บนหนาเว็บ bootstrap โดย font awesome
https://fontawesome.com/
จากนนั้ แตกไฟลออกจะไดหนาตาแบบน้ี
ใน Folder CSS จะเก็บไฟล css เอาไวทั้งหมด และใน folder font ก็จะเก็บ font รูปแบบตางๆเอาไว สวนอีกสอง
folder เปนการเขียน css แบบ less กับ scss ให Copy folder ท้ังหมดไปวางใน โฟลเดอร ชื่อวา “bootstrap ” ภายใน
C:\AppServ\www\
แลว เรามาเรียกใชงานกนั วธิ เี รยี กเหมือนกนั กับ css ท่ัวไป
ใหดูตามตัวอยางใน link http://fontawesome.io/icons/ เพอ่ื เลือกรูป icon
ตวั อยางการใชงาน
<i class="=ชื่อicon fa-ขนาด"></i>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
24
การใชง าน Bootstrap Components ตา งๆ
Dropdown Menus
ปุม Drop down สวนใหญเรามักจะสรางข้ึนมาเม่ือตองการใหขอความหนึ่งเปนหมวดหมูหลักและ Link อื่นๆที่อยู
ภายในเปน เพยี ง Link ยอยท่ีอยูภ ายในถาใช CSS กับ jQuery กอ็ าจจะยากไปหรอื ยุงเกนิ เสยี เวลา ถา ใช Bootstrap
เลือ่ นลงพน้ื ฐาน
เล่ือนข้ึน
แกไ ข <div class="dropup">
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
25
Navbar
การสราง Menubar ใน Bootstrap เราจะใช Navbar ในการสราง Navbar คือ ฟจเจอรท่ีใชสําหรับรองรับการสราง Menubar
ใหม ีความสะดวกและงา ยสาํ หรบั ผสู รางเว็บไซด อีกทั้งยงั รองรบั การแสดงผลแบบ Responsive
ขั้นตอนการสรา ง Navbar
เร่ิมตนใหเราสรางแท็ก "<div>" พรอมกําหนดคลาสในแท็กดังกลาวเปน "navbar navbar-default" ดังโคดตัวอยาง
ดานลาง เพ่อื เปน สง่ิ ท่ีบง บอกวา ณ สวนใดของเว็บไซดท เ่ี ราตองการสราง Navbar
<div class="navbar navbar-default">
</div>
ถัดมาใหใสวางแท็ก "<div>" ขางในแท็กดานบนพรอมกําหนดคลาสเปน "container-fluid" เพ่ือท่ีเปนที่จัดเก็บเนื้อหา
ของเมนบู ารท งั้ หมด
<div class="navbar navbar-default">
<div class="container-fluid">
</div>
</div>
ถัดมาเราจะใสโลโกหรือชื่อเว็บไซดบน Navbars พรอมกับเมนตางๆ โดยใหเราสรางแท็ก "<div>" พรอมกําหนดชื่อ
คลาสเปน "navbar-header" ตอมาเราจะใสปุมเพ่ือแสดงตอนที่ Navbars ของเราแสดงบนหนาจอขนาดเล็ก เพ่ือใหเขาใจไดงาย
ขอใหผ อู านดูโคดทแี่ สดงในดา นลางประกอบไปดว ย โดยการแสดงปมุ สาํ หรบั หนาจอขนาดเล็ก จะตองใสแท็ก "<button>" พรอม
กําหนดช่ือคลาสเปน "navbar-toggle" เพื่อการแสดงผลที่สวยงาม นอกจากนี้ยังตองใสแอตทริบิวส "data-toggle" เปน
"collapse" เพ่ือเปนการบงบอกท่ีแอคชั่นที่เกิดข้ึนเมื่อมีการคลิกปุม และแอตทริบิวส "data-target" เปนเปนการบงบอกถึงสวน
ของการแสดงผลของเนือ้ หาเม่อื มกี ารคลิกปุม โดยคาท่ีถกู กําหนดในแอตทริบวิ สน้ีคอื "#mynavbar" ซงึ่ หมายถึงใหแ สดงผลเน้ือหา
ท่ีการกําหนดดวยแอตทริบวิ ส "id" ที่มีคาเปน "mynavbar"
ถัดมาคือข้ันตอนการใสลิงคท่ีเราตองการใน Navbar โดยใหเราสรางแท็ก "<div>" ท่ีอยูในลําดับเดียวกับแท็ก "<div
class="navbar-header">" โดยแท็ก "<div>" ดังกลาวใหกําหนดคลาสเปน "collapse navbar-collapse" และกําหนดแอตทริ
บวิ ส id เปน "mynavbar-content" เพ่อื ใหม คี วามสอดคลองกบั แอคชนั่ ของปุม ทีเ่ ราไดส รางขึ้นกอ นหนาน้ี
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
26
ตอมาเราจะใชแท็ก "<ul>" และแท็ก "<li>" เพื่อใชสรางลิงคบน Navbar โดยคลาสของแท็ก "<ul>" ตองกําหนดเปน
"nav navbar-nav" ดงั โคดท่ีแสดงในดา นลา ง .
สําหรบั หนา จอในขนาดปกติ
หนา จอขนาดเล็ก
Breadcrumbs
การสรา งโครงสรางของเวบ็ เพจบนเว็บไซดของเรา หรอื บางคนเรียกเรียกวาการทําแผนท่ีเว็บไซด (Site mapเครื่องมือท่ี
ใชนําทางในเว็บของเราใหรูวาตอนนี้เราอยูสวนไหนของเว็บไซต อยูลึกจากหนาหลัก หรือ วา homepage เขามาเทาไร ซึ่งแตละ
เว็บไซตก็จะไมเ หมือนกัน ขนึ้ อยูกับโครงสรางของเวบ็ ไซตแตละเว็บใน Bootstrap ไดมีการสรางฟงกช้นั ที่สนบั สนุนการสรางแผนท่ี
เวบ็ ไซด เพยี งแคเ รียกใชคลาส "Breadcrumb" ในแท็ก "<ol>" หรอื "<ul>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
27
Badges
ปา ยเปนตวั ชีว้ ดั เชงิ ตัวเลขของจาํ นวนรายการที่มีความเกีย่ วของกับการเช่อื มโยง
Badges
Badges button
Labels
Labels
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
28
Contextual Label
Alerts
การสรางกลองแสดงขอความแจงเตือนแบบ MODAL ของ BOOTSTRAP
Alert text
Alert Popup
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#basicModal">
Launch modal
</button>
ตาม Code ตัวอยางนี้เปนการสรางปุมขึ้นมาแลวใช HTML attribute พิเศษเขามาชวยนั้นคือ data-toggle กับ data-
target ซ่ึงจะชวยใหเราสามารถระบุ attributes ใหกับทาง javascript แลวเราก็ระบุ class ใหเปนปุม สีฟา ขนาดใหญ จะได
หนาตาออกมาแบบน้ี
เริ่มจากการสราง div ในสวนของ class ชื่อ modal fade กอนเพ่ือบอกวาตอไปน้ีเปนการทํางานของกลองขอความ
แบบน้นี ะ
<div class="modal fade" id="basicModal">
</div>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
29
หลงั จากกดปมุ Launch modal จะมีกลอ ง pop up ท่ีเราสรา งเดงขึน้ มา
Media Object
Media Object คือ เปนสวนประกอบท่ีสําคัญหน่ึงใน Bootstrap ซ่ึงไวใชสรางสวนประกอบในหนาเว็บไซตท่ีมีรูปแบบ
ซาํ้ ๆ เชน การแสดงรูปภาพและเน้ือหาของขาว หรอื การแสดงขอความในสวนของคอมเมนทบนเว็บบอรด ตา งๆ
Media Object
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
30
Media Object list
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
บทท่ี 2
31
เรมิ่ ตนกับ PHP
Client – Server
Client คอื เครื่องคอมพิวเตอรที่ไปรองขอบริการและรับบรกิ ารอยา งใดอยางหน่ึงจาก Server
server คือ เครื่องคอมพวิ เตอรห รอื ระบบปฏิบตั กิ ารหรอื โปรแกรมคอมพวิ เตอร ท่ีทาํ หนา ที่ใหบริการอยางใดอยา งหน่ึงหรอื
หลายอยาง โดยอาศยั โปรแกรม Web serverแกเคร่ืองคอมพิวเตอรห รือโปรแกรมคอมพิวเตอรทเ่ี ปน ลูกขา ย ในระบบเครื่อขา ย
server แบงเปน 3 ประเภทไดแก
1.เคร่อื งคอมพวิ เตอรท่ที าํ หนาท่ใี หบ รกิ ารอะไรบางอยา งแกคอมพวิ เตอรหรือโปรแกรมคอมพวิ เตอรอ น่ื
2.ระบบปฏิบตั กิ ารคอมพวิ เตอรทท่ี ําหนาท่ใี หบรกิ ารอะไรบางอยา งแกคอมพิวเตอรหรอื โปรแกรมคอมพิวเตอรอ ่ืน
3.โปรแกรมคอมพิวเตอรท ่ีทําหนา ท่ใี หบ รกิ ารอะไรบางอยา งแกคอมพิวเตอรหรือโปรแกรมคอมพวิ เตอรอนื่
client/server คอื การทม่ี ีเคร่อื งผใู หบ ริการ (server) และเคร่ืองผใู ชบ รกิ าร (client) เชือ่ มตอ กนั อยู และเครื่องผใู ชบ รกิ ารไดมกี าร
ติดตอรอ งขอบรกิ ารจากเครื่องผใู หบ รกิ าร เคร่ืองผใู หบริการกจ็ ะจัดการตามทเี่ คร่อื งผูขอใชบ ริการรอ งขอ แลว สงขอ มลู กลบั ไปให
เครือขา ยแบบ Client / server เหมาะกบั ระบบเครือขา ยทีต่ อ งการเชอ่ื มตอกับเครื่องลูกขายจาํ นวนมาก โดยการรองรับจาํ นวน
เครื่องลกู ขาย (Client )อาจเปน หลักสิบ หลกั รอ ย หรือหลกั พนั เพราะฉะนัน้ เครื่องทจี่ ะนํามาทําหนา ท่ีใหบรกิ ารจะตอ งเปนเครื่องทม่ี ี
ประสิทธภิ าพสูง เนอ่ื งจากถูกตอ งออกแบบมาเพือ่ ทนทานตอความผดิ พลาด ( Fault Tolerance )และตอ งคอยใหบ ริการทรัพยาการ
ใหก บั เครอ่ื งลูกขายตลอดเวลา โดยเคร่อื งทจ่ี ะนาํ มาทําเปนเซริ ฟ เวอรอ าจเปน คอมพิวเตอรแบบเมนเฟรม มนิ คิ อมพวิ เตอร หรือ
ไมโครคอมพวิ เตอรก ็ได
PHP Tag
การใช PHP Tag
PHP Tag ตามตัวอยา ง เร่มิ ตน ดวย <? และปดดว ย ?> คลา ยกบั HTML tag เพราะเริ่มตนดวยเครื่องหมายนอ ยกวา
(<) และปด ดวยเคร่อื งหมายมากกวา (>) สัญลักษณเหลานี้ เรยี กวา PHP tag ที่บอกแมข ายเว็บการเรมิ่ ตนและสน้ิ สุดคําสัง่ PHP
ขอความระหวา ง tag จะไดรับการแปลในฐานะ PHP ขอความภายนอก tag เหลา นไี้ ดร บั การปฏิบัตเิ หมือน HTML ปกติ PHP tag
ยอมใหหลกี จาก HTML
รูปแบบ PHP tag
รปู แบบ PHP tag มี 4 แบบ แตละแบบของคาํ สั่งอยา งเหมอื นกัน
รปู แบบยอ (Short style)
<? echo "<h1>พนู พนา</h1>";?>
รูปแบบน้เี ปน รปู แบบงา ยท่ีสดุ และเปนไปตามมาตรฐานการประมวลผล SGML (Standard Generalized Markup
Language) การใช tag ประเภทนีต้ อ งใหใ ช short tag ในไฟลค อนฟก php.ini ทีค่ าํ ส่ัง short_open_tag ใหเ ปน enable แตไ ม
แนะนาํ เน่อื งจากไมเ ปนไปตามมาตรฐาน XHTML และมาตรฐานสว นขยายเชน PEAR
รปู แบบ XML
<?php echo "<h1>พนู พนา</h1>";?>
tag รปู แบบนส้ี ามารถใชกับเอกสาร XML (Extensible Markup Language) ถาวางแผนใหทาํ งานกับ XML ตอ งใช
รปู แบบนี้
รปู แบบ SCRIPT
< SCRIPT LANGUAGE='php'> echo "<h1>พูนพนา</h1>"; </SCRIPT>
tag รูปแบบน้ี ยาวท่สี ดุ และอาจจะคุนเคย ถาเคยใช JavaScript หรือ VBScript
รูปแบบ ASP
<% echo "<h1>พูนพนา</h1>"; %>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
32
tag รูปแบบนี้เหมอื นกับ Active Server Pages (ASP) สามารถใชได ถาต้งั คาคอนฟก คําสัง่ asp_tags ใหเ ปน
enable
คําสั่งการแสดงผล PHP
ในการเขียนโปรแกรม การตดิ ตอ กบั ผูใ ชน น้ั เปนสว นหนงึ่ ทสี่ ําคญั เพอื่ การแลกเปลีย่ นขอ มลู ระหวา งผใู ชก ับโปรแกรม
ยกตัวอยา งเชน ในการเขาสรู ะบบเวบ็ ไซต คณุ จําเปนตอ งใสช่ือผูใชแ ละรหัสผาน ซ่งึ นเ่ี รยี กวา การรบั คา และการแสดงผลคอื การ
แสดงผลลัพธกลบั มายังผูในรปู แบบตา งๆ เชน ขอความ รปู ภาพ และเสียง เปนตน
เนอ่ื งจากในบทเรียนของเราเปน แบบ Console ดงั น้ันเราจะพดู เฉพาะเก่ียวกบั การรับคาบน Command line ทางคียบอรด และการ
แสดงผลพืน้ ฐานโดยการใชค าํ สั่ง echo และ print ในภาษา PHP
การรับคาบน Command line
โดยปกตแิ ลวการรบั คาในภาษา PHP มักจะเปน การรับคา ผา นทาง URL หรือ Query string อยา งไรกต็ ามเม่อื เราเขยี น
Console application เราจงึ ตองทําการรับคาผา นทาง Command line
<?php
$handle = fopen("php://stdin","r");
echo "What's your name? ";
$line = fgets($handle);
$line = trim($line);
echo "Hello $line!\n";
?>
ในตวั อยาง เปน โปรแกรมถามชือ่ ผใู ช โดยการใหใ สชอ่ื ผานทางคียบ อรด และแสดงขอ ความทักทายผูใชด ังกลา ว
$handle = fopen("php://stdin","r");
เราไดส รา งตวั แปรควบคมุ ในการอา นคา จาก Input stream ในภาษา PHP ดว ยฟงกช นั fopen() สาํ หรบั การอา นคาจาก Console
$line = fgets($handle);
$line = trim($line);
นเี่ ปนคาํ สง่ั ในการรบั คามาไวในตัวแปร $line โดยฟง กชนั fgets() การรบั คา เสรจ็ ส้นิ เมือ่ มีการกดปุม Carrier return หรอื Enter
และเราใชฟ ง กชนั trim() ในการตดั ตัวอักษร \n ทีเ่ กดิ ในตอนกด Enter ออกไป
What's your name? Mateo
Hello Mateo!
น่ีเปน ผลลัพธข องโปรแกรม โดยเราไดก รอกชื่อและโปรแกรมแสดงขอ ความทกั ทาย
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
33
ตอ ไปเปน ตวั อยางเพมิ่ เตมิ เราจะทําการสรา งฟอรม สําหรบั ใหผ ูใชใ สข อมูลเพอื่ สมัครสมาชกิ สําหรับเวบ็ ไซต
<?php
$handle = fopen ("php://stdin","r");
echo "Create account\n";
echo "Enter name: ";
$name = trim(fgets($handle));
echo "Enter email: ";
$email = trim(fgets($handle));
echo "Create password: ";
$password = trim(fgets($handle));
echo "Do you want to submit? (yes \ no) ";
$submit = trim(fgets($handle));
if ($submit == "yes") {
echo "\nYour account has been created\n";
echo "with the following informations.\n";
echo "Name:\t$name\n";
echo "Email:\t$email\n";
echo "Password:\t$password\n";
} else {
echo "The action was canceled.\n";
}
?>
ในตัวอยาง เปน แบบฟอรม สาํ หรับสมคั รสมาชิกในภาษา PHP โดยมกี ารถามใหผใู ชใ สช ื่อ อีเมล และตงั้ รหัสผา น และในตอนทายถาม
การยืนยนั วา ตอ งการจะสง ขอ มูลหรือไม ถา ผใู ชตอบ "yes" หมายถึงการสรา งบัญชสี าํ เรจ็
Create account
Enter name: Mateo
Enter email: [email protected]
Create password: 1234
Do you want to submit? (yes \ no) yes
Your account has been created
with the following informations.
Name: Mateo
Email: [email protected]
Password: 1234
นี่เปน ผลลพั ธเ มือ่ รันโปรแกรม เรากรอกช่ือ อีเมล และรหสั ผา นจากทโ่ี ปรแกรมถาม และไดย ืนยันการสง ขอ มูล ซึง่ นเี่ ปน สง่ิ ที่คณุ เหน็
ในหนาสมคั รสมาชกิ ของเวบ็ ไซตจ าํ นวนมาก
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
34
การแสดงผลออกทางหนาจอ
ในบทกอนหนา คุณอาจจะไดเ ห็นการแสดงผลทางหนาจอมาบางแลว ในภาษา PHP เรามักจะใชคาํ สง่ั echo และ print
เพอื่ แสดงผลขอ ความออกทางหนา จอ คาํ ส่งั เหลา นีเ้ ปน โครงสรา งทางภาษาทจ่ี ะทําการตดิ ตอกับ Output stream โดยการแสดงผล
ลําดับของตัวอกั ษรออกทางหนา จอ แตส งิ่ ที่แตกตา งกนั ระหวาง echo และ print มดี งั น้ี
print มเี พยี งหนง่ึ พารามเิ ตอรในขณะที่ echo มีไดห ลายพารามเิ ตอร
print สงคา 1 กลับดงั น้ันมนั จงึ เปน Expression แต echo ไมม ีการสงคากลบั
echo ทาํ งานเร็วกวา เลก็ นอ ย
การแสดงผลดว ยคําสงั่ echo
Echo เปนคาํ สัง่ ในการแสดงผลขอ ความออกทางหนาจอ echo ไมใชฟ ง กชนั เสยี ทเี ดียวแตม นั เปน โครงสรา งของภาษา
PHP มาดตู วั อยา งการใชง านในแบบตา งๆ
<?php
echo "Bound to pass the point of contemplation.\n";
echo "Mercury ", "Venus ", "Earth ", "Mars", "\n";
$lang = "PHP";
echo "$lang is a language for web.\n";
$a = 10;
$b = 5;
echo "a + b = ", ($a + $b);
?>
ในตวั อยางเปนการแสดงขอความในรปู แบบตางในคาํ สั่ง echo มนั สามารถมไี ดห ลายพารามเิ ตอร ซ่งึ จะคนั่ ดว ยเคร่อื งหมายคอมมา
(,) และเรายังสามารถแทรกตัวแปรใน String ที่เรียกวา String interpolation
Bound to pass the point of contemplation.
Mercury Venus Earth Mars
PHP is a language for web.
a + b = 15
และนเี่ ปนผลลพั ธการทาํ งานของคาํ สัง่ echo เมอ่ื รันโปรแกรม
การแสดงผลดว ยคําสง่ั print
print เปน คําส่งั ในการแสดงผลเชน เดยี วกับ echo สงิ่ ที่แตกตางกนั คือคําสัง่ print จะมกี ารสง คา 1 กลบั มาเมื่อการ
แสดงผลเสรจ็ สิน้ และมันมไี ดเพยี งพารามิเตอรเดียว มาดูตวั อยา งการใชงานคาํ สั่ง print
<?php
print "My heart grows so cold.\n";
$lang = "PHP";
print "$lang tutorial on marcuscode.com\n";
$age = 28;
$age >= 18 ? print "Adult" : print "Young";
?>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
35
ในตัวอยา ง เราสามารถใชคาํ ส่ัง print เพือ่ แสดงผลไดเชนเดยี วกัน แตใ นคําส่ังสดุ ทา ยเราสามารถใชค ําสง่ั print ในรูปแบบของ
Expression ไดเพราะวา มันมกี ารสงคา กลบั มา
My heart grows so cold.
PHP tutorial on marcuscode.com
Adult
และน่เี ปน ผลลพั ธการทํางานของคาํ ส่ัง print เมอื่ Run โปรแกรม
การใช Comment ในภาษา PHP
Comment ในคาํ สงั่ ทาํ หนาทเ่ี ปน หมายเหตุใหก ับผอู านคาํ สง่ั Comment สามารถใชอ ธบิ ายวตั ถุประสงคข องสครปิ ต
ทาํ ไมถึงทําแบบนน้ั การปรบั ปรงุ ครัง้ สุดทายและอ่ืน ๆ
ตัวแปล PHP จะไมส นใจขอความใน Comment โดยเฉพาะอยา งยงิ่ PHP parser ขาม Comment ทเ่ี ทียบเทา กบั whitespace
PHP สนับสนุนรปู แบบ Comment แบบ C, C++ และ Shell script
รูปแบบ C เปน Comment หลายบรรทัด
/* Author: Chaiwat
Last Modified: 1 June 2005
This script processes the customer order.
*/
Comment หลายบรรทัด เริ่มตน ดวย /* และปด ดว ย */ เหมือนภาษา C
Comment 1 บรรทดั สามารถใชรปู แบบ C++
echo "<h1>พนู พนา</h1>"; // Start printing order
หรือ รปู แบบ Shell script
echo "<h1>พูนพนา</h1>"; # Start printing order
รูจักตวั ดาํ เนินการในภาษา PHP
ตัวดําเนินการ คอื เครอื่ งหมายหรือสัญลักษณท ่ีกาํ หนดขึ้นสําหรับใชในการจดั การกับตวั แปรและคา คงท่ี หรอื สรา ง Expression
ขึน้ และนําไปใชง านในการเขียนโปรแกรม ตัวดาํ เนินการในภาษา PHP มีหลายรปู แบบซึ่งในบทน้ี เนอื้ หาไดแบงยอ ยออกเปน ดงั นี้
• Assignment operator
• Arithmetic operators
• Compound assignment
• Comparison Operators
• Logical operators
• Bitwise operators
• String Concatenation Operator
• Ternary Operator
• Operators' precedence
•
เราจะเรม่ิ กบั ตัวดําเนินการทพี่ ื้นฐานทสี่ ุดในภาษา PHP ตวั ดาํ เนนิ การกาํ หนดคา
Assignment operator
ตวั ดาํ เนินการกําหนดคา (Assignment operator) คอื ตัวดําเนนิ การท่ีใชสําหรับกําหนดคา ใหก ับตวั แปรหรอื คาคงท่ี
เครื่องหมายเทา กบั = ใชเ ปนสัญลกั ษณข องตวั ดาํ เนินการนี้ การทํางานของตัวดําเนนิ การนนั้ จะนาํ คา จากดา นขวามาใสต ัวแปรทาง
ดานซา ย
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
36
$x = 1;
$y = $x + 5;
$text = "PHP language";
ในตัวอยางเปนการใชง านตวั ดาํ เนนิ การกําหนดคา ในการกาํ หนดคา ใหกับตัวแปรในภาษา PHP เราไดก าํ หนดคา 1 ใหกับตัว
แปร $x เรากําหนดคา ใหก ับตัวแปร $y ในรูปแบบของ Expression และกําหนด String ใหก ับตวั แปร $text
นเ่ี ปน การดําเนินการทพ่ี ืน้ ฐานทสี่ ดุ ในการเขยี นโปรแกรม
Arithmetic operators
ตัวดําเนนิ การทางคณิตศาสตร (Arithmetic operators) เปนตวั ดําเนนิ การในการหาผลลัพธจากการกระทาํ ทาง
คณิตศาสตร เชน การบวก การลบ การคูณ และหารหาร โดยมตี วั เลขเปน Operand และจะไดผลลพั ธส ดุ ทา ยออกมาคาเดยี ว
นีเ่ ปน ตารางตวั ดาํ เนนิ การทางคณติ ศาสตใ นภาษา PHP
Symbol Name Example
+ Addition $c = $a + $b
- Subtraction $c = $a - $b
* Multiplication $c = $a * $b
/ Division $c = $a / $b
% Modulo $c = $a % $b
ใน 4 ตวั ดาํ เนินการแรกนน้ั เปน ตวั ดําเนนิ การพื้นฐานในทางคณติ ศาสตร แตในตวั ดําเนินการสดุ ทาย Modulo น้ันเปน การหารแบบ
เอาเศษ ตอ ไปเปน ตัวอยางการใชต วั ดาํ เนินการแบบตา งๆ
<?php
$price = 150;
$tax_rate = 10;
$tax_price = $price * ($tax_rate / 100);
$total_price = $price + $tax_price;
echo "Item with price $price\n";
echo "Tax rate $tax_rate%\n";
echo "Price increased by tax $tax_price\n";
echo "Total price = $total_price\n";
?>
ในตวั อยา งเปน โปรแกรมในการคาํ นวณหาภาษามูลคา เพิ่มจากการซอ้ื สน้ิ คา โดยเรามีราคาของส้นิ คา ทยี่ ังไมรวมภาษาษีและอตั ราของ
ภาษา และคาํ นวณสําหรบั ราคาทงั้ หมดทีต่ อ งจายหลงั จากรวมกบั ภาษแี ลว
$price = 150;
$tax_rate = 10;
ตัวแปร $price นน้ั เปน ราคาสิ้นคา ทยี่ ังไมไ ดร วมกับภาษี และตัวแปร $tax_rate เปน อัตราภาษีตอ 100% และคณุ สามารถเปล่ยี น
คา ของตวั แปรเหลา น้ีได
$tax_price = $price * ($tax_rate / 100);
$total_price = $price + $tax_price;
ในตัวแปร $tax_priceเปนการคํานวณหาราคาทีเ่ พ่ิมขึน้ มาจากภาษี และ $total_price เปน การหาราคาทั้งหมดเมอ่ื รวมกบั ภาษแี ลว
Item with price 150
Tax rate 10%
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
37
Price increased by tax 15
Total price = 165
นเี่ ปน ผลลพั ธข องโปรแกรม ซง่ึ อธบิ ายไดว าเมอ่ื คณุ ซื้อของในราคา 150 และมีภาษี 10% ราคาทงั้ หมดทคี่ ุณจะตองจายหลังจากรวม
ภาษีแลว คือ 165
<?php
$total_second = 340;
$minute = floor($total_second / 60);
$second = $total_second % 60;
echo "$total_second seconds\n";
echo "$minute minutes $second seconds";
?>
ตัวอยางตอ มาเปนการใชเครอื่ งหมาย Modulo ในการหาเศษของเวลา เรามีตวั แปร $total_secondสําหรับเก็บคาวินาทีท้งั หมด
โปรแกรมของเราเปนการแปลงมาเปนในรปู แบบ นาทีและวินาที
$minute = floor($total_second / 60);
$second = $total_second % 60;
เราหาคาของนาทโี ดยการหารดวย 60 และใชฟ ง กชนั floor() เพ่ือตดั เศษทศนยิ มออกไป สาํ หรบั หาคา วินาที เราใชการหารเอาเศษ
โดยตวั ดาํ เนนิ การ Modulo เพราะวา วนิ าทที เ่ี หลอื คือการนาํ ไปหาเศษจากการหารดว ย 60 ใน Expression $total_second % 60
340 seconds
5 minutes 40 seconds
นเี่ ปน ผลลพั ธเ มือ่ รันโปรแกรม ท่แี ปลงจากวินาทีทงั้ หมดเปนนาทแี ละวนิ าที
Bitwise operators
ตวั ดําเนินการระดับบิต (Bitwise operators) คือตวั ดาํ เนินการทมี่ กี ารกระทํากันในระดับบติ ของขอมูลซึ่งมแี ค 1 และ 0 น่ี
เปน โครงสรา งของภาษาทถ่ี ายทดมาจากภาษา C ในการทาํ งานของตวั ดําเนินการระดับบติ เปนการนําคูของบิตมากระทําตอกนั ในทาง
ตรรกศาสตรและไดผ ลลพั ธเ ปน บิตใหม สวนมากแลว มันมักจะใชกบั การเขยี นโปรแกรมในระดับตํ่า
น่ีเปนตารางตัวตัวดําเนินการระดบั บติ ในภาษา PHP
Symbol Name Example
& And $c = $a & $b
| Or $c = $a | $b
^ Xor $c = $a ^ $b
~ Not $c = ~$b
<< Shift left $c = $a << $b
>> Shift right $c = $a >> $b
เพอื่ ใหค ุณเขาใจหลักการทาํ งานของตัวดําเนนิ การระดับบติ มาดูตวั อยางการใชง านตัวดาํ เนนิ การระดบั บติ ในภาษา PHP คณุ จะตอง
เขา ใจในหลักการของประพจนในคณติ ศาสตรส าํ หรบั การใชง านตวั ดาํ เนนิ การน้ี
<?php
$a = 8;
$b = 3;
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
38
echo "a & b = ", $a & $b, "\n";
echo "a | b = ", $a | $b, "\n";
echo "a ^ b = ", $a ^ $b, "\n";
echo "~a = ", ~$a, "\n";
echo "a << 1 = ", $a << 1, "\n";
echo "a >> 1 = ", $a >> 1, "\n";
?>
ในตัวอยา งเปน การใชต วั เนนิ การระดับบิตกบั Integer เรามตี วั แปร $a และ $b ซ่ึงเก็บคา ตัวเลข ในการทาํ งานของตวั ดําเนินการ
เหลา น้ี ตวั เลขถูกแปลงในรูปแบบของ Binary ท่ีมีขนาดเทา กันดังน้ี
1000 = 8
0011 = 3
ในการคาํ นวณหา $a & $b เราจะทําการเปรยี บเทยี บในแตล ะคูข องบติ ทตี่ รงกนั เนอ่ื งจากตวั ดาํ เนนิ การ & ผลลัพธท ไี ดจะเปน 1 ถา
หากบติ ทง้ั สองเปน 1 ไมเชน นน้ั จะเปน 0 เราจึงคํานวณได 1 & 0 = 0, 0 & 0 = 0, 0 & 1 = 0 และ 0 & 1 = 0 หลังจากเสรจ็ ส้นิ ทงั้
4 บิตเรานาํ ผลลพั ธข องแตล ะบติ มารวมกนั จะได 0000 ดงั นนั้ 8 & 3 จงึ มีคา เทากบั 0 ในฐานสบิ
ตอมาเราคํานวณหาสําหรับ $a | $b ผลลพั ธท ีไ่ ดถ าหากบติ ใดบิตหนง่ึ มีคา เปน 1 จะไดผ ลลพั ธเปน 1 นอกจากน้จี ะไดผ ลลพั ธเ ปน 0
จะได 1000 | 0011 = 1011 ดังนั้น 8 | 3 จึงมคี าเทากบั 11 ในฐานสิบ
สําหรับ $a ^ $b ผลลัพธท ่ไี ดจ ะเปนจรงิ ถา หากบติ ใดบติ หนึ่งเปน 1 หรอื 0 แตไมใ ชทง้ั สอง ทาํ ใหเ ราได 1000 | 0011 = 1011
ดังนัน้ 8 | 3 จงึ มคี า เทากับ 11 ในฐานสิบ
สําหรบั ~$a เปน การนาํ บติ มาผนั กลับจาก 1 ไป 0 และ 0 ไป 1 จะได ~1000 = 0111 ซง่ึ มคี า เปน 7 ในฐานสบิ
สําหรบั $a << 1 เปน การเล่อื นบติ ไปทางซาย 1 บติ บติ ทางขวาทเี่ พม่ิ เขา มาจะเปน 0 เสมอ จะได 1000 << 1 = 10000 ซ่ึงมคี า
เทากบั 16 ในฐาน 10 ในการใชตวั ดาํ เนินการนค้ี า จะเพมิ่ ข้นึ เปน 2 เทาในการเลื่อนบติ ไปทางซา ย 1 ครง้ั
สําหรบั $a >> 1 เปน การเลอ่ื นบติ ไปทางขวา 1 บติ บิตทางขวาทีเ่ พม่ิ เขามาจะเปน 0 เสมอ จะได 1000 >> 1 = 0100 ซึ่งมีคา
เทา กบั 4 ในฐาน 10 ในการใชต ัวดาํ เนินการนีค้ า จะลดลงคร่ึงหน่งึ ในการเลือ่ นบติ ไปทางขวา 1 คร้ัง
a&b=0
a | b = 11
a ^ b = 11
~a = -9
a << 1 = 16
a >> 1 = 4
นเ่ี ปนผลลัพธจ ากการใชต วั ดําเนนิ การระดบั บติ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
39
Compound assignment
Compound assignment operators คือตวั ดําเนินการทร่ี วมระหวา งตัวดําเนินการทางคณิตศาสตรแ ละตัวดําเนนิ การ
กําหนดคา มันใชส าํ หรบั อัพเดทขอ มูลทีอ่ า งอิงจากขอ มลู ในปจ จบุ ัน หรอื กลาวอีกนยั หน่ึง มันเปน รปู แบบทสี่ น้ั กวา ของตวั ดาํ เนนิ การ
ทางคณติ ศาสตร
น่ีเปนตารางสําหรบั Compound assignment operators ในภาษา PHP
Operator Example Equivalent to
+= $a += 2; $a = $a + 2
-= $a -= 2; $a = $a - 2
*= $a *= 2; $a = $a * 2
/= $a /= 2; $a= $a / 2
%= $a %= 2; $a = $a % 2
>>= $a >>= 2; $a = $a >> 2
<<= $a <<= 2 $a = $a << 2
&= $a & = 2; $a = $a & 2
^= $a ^= 2; $a= $a ^ 2
|= $a |= 2; $a = $a | 2
ตอไปมาดูตัวอยางการใชง าน Compound assignment operators ในภาษา PHP โดยจะเปนโปรแกรมในการบันทึกความคืบหนา
ของการสรา งตกึ
<?php
$floor = 0;
echo "Building is being constructed.\n";
$floor += 3;
echo "First day finished $floor floors.\n";
$floor += 5;
echo "Second day finished $floor floors.\n";
$floor += 4;
echo "Third day finished $floor floors.\n";
$floor += 2;
echo "Forth day finished $floor floors .\n";
?>
ในตัวอยาง เปน โปรแกรมแสดงการทํางานของการสรา งตกึ ตัวแปร $floor สาํ หรบั เก็บคาจาํ นวนช้ันของตกึ ท่ที าํ การสรางเสร็จแลว
ในแตล ะวันท่ที าํ การสรางตกึ เสรจ็ จะนาํ จํานวนช้นั ใหมไปบวกเพิ่มกบั วันกอ นหนา เชน ในวันแรกสรา งเสรจ็ ไป 3 ชั้นจะได $floor
+= 3; ซงึ่ ตวั ดาํ เนนิ การเหลานเี้ ปนรปู แบบท่สี ั้นข้ึนจาก $floor = $floor + 3; นค่ี ือการลดการใช Operand ทไ่ี มจ าํ เปนออกไป ใน
การเขียนคณุ สามารถใชแ บบไหนก็ได
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
40
Building is being constructed.
First day finished 3 floors.
Second day finished 8 floors.
Third day finished 12 floors.
Forth day finished 14 floors.
นีเ่ ปนผลลพั ธเ ม่ือรันโปรแกรม
Comparison Operators
ตัวดําเนนิ การเปรยี บเทยี บ (Comparison Operators) คือตัวดาํ เนนิ การที่ใชส ําหรับเปรยี บเทียบระหวางคา สองคา
ผลลพั ธข องการเปรยี บเทยี บจะไดเ ปน Boolean ท่ีมคี า เปนเพยี ง True หรือ False เทา นน้ั ตวั ดําเนนิ การเปรยี บเทียบมักจะใช
สําหรบั คาํ ส่ังเลอื กเงื่อนไขหรอื วนซาํ้ ในการเขยี นโปรแกรม เราใชตวั ดาํ เนนิ การเหลานเ้ี พอ่ื สรา งเงอื่ นไขใหโ ปรแกรมทาํ งานตามที่
ตอ งการ
ในภาษา PHP เน่ืองจากตัวแปรเปน แบบ Typeless ดังนนั้ คาของตวั แปรอาจจะมีความหมายเทา กนั ในบางบริบท เชน คา
ของ True นั้นอาจจะเทากบั 1 และคาของ False อาจจะเทา กับ 0 คุณสามารถดเู พ่มิ เตมิ ไดใ นเร่ืองการเทากันของขอมูล ในบทตวั
แปรและประเภทขอ มลู
น่ีเปนรายการของตวั ดาํ เนินการเปรยี บเทียบในภาษา PHP
Operator Example Result
== $a == $b เปน จรงิ ถา a เทา กับ b ไมเ ชน นั้นเปนเท็จ
!=, <> $a != $b เปนจริงถา a ไมเทา กับ b ไมเ ชน นั้นเปน เท็จ
< $a < $b เปนจริงถา a นอยกวา b ไมเชน นน้ั เปน เทจ็
<= $a <= $b เปนจริงถา a นอยกวา หรอื เทากับ b ไมเ ชนน้ันเปน เท็จ
> $a > $b เปนจริงถา a มากกวา b ไมเ ชน น้ันเปน เท็จ
>= $a >= $b เปน จริงถา a มากกวาหรอื เทา กับ b ไมเชน นนั้ เปนเท็จ
=== $a === $b เปน จริงถาทัง้ คา และประเภทของตวั แปร a เทากับ b ไมเ ชน นัน้ เปน เทจ็
!== $a !== $b เปนจริงถา ทั้งคาและประเภทของตวั แปร a ไมเทากบั b ไมเ ชนนน้ั เปน เทจ็
ตอไปเปนตัวอยา งการใชต ัวดํานําเนนิ การในการเปรียบเทียบคาในตวั แปรในภาษา PHP
<?php
$a = 5;
$b = 10;
if ($a == $b) {
echo "a is equal to b\n";
} else {
echo "a is not equal to b\n";
}
if ($a < $b) {
echo "a is less than b\n";
} else {
echo "a is not less than b\n";
}
if ($a % 2 == 0) {
echo "a is even number\n";
} else {
echo "a is odd number\n";
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
41
}
?>
ในตวั อยา ง เรามีตัวแปรสองตัวคอื $a และ $b และไดก าํ หนดคาใหก ับตวั แปรเหลา น้ี เราใชตัวดําเนนิ การเปรยี บเทยี บกับคําสง่ั
เงื่อนไข If เม่อื เง่ือนไขเปนจริงคาํ สง่ั ในบล็อคของ If จะทาํ งาน และถา ไมเ ปนจริงคาํ สัง่ ในบลอ็ คของ Else จะทาํ งาน
ในคําส่ัง if ($a == $b) เปนการตรวจสอบถา หากตวั แปรมคี า เทากัน เนอ่ื งจากคาในตัวแปรทั้งสองไมเ ทา กัน โปรแกรมจงึ ทาํ งานใน
บล็อคของ Else ในคําส่ัง if ($a < $b) เปน การตรวจสอบถาหากตวั แปร $a มคี านอยกวา $b ซ่ึงเปน จรงิ และในคาํ ส่งั สุดทา ย if ($a
% 2 == 0) เปนการตรวจสอบถา หาก $aเปน เลขคูจากหารเอาเศษ ซึ่งเปน เท็จ
a is not equal to b
a is less than b
a is odd number
นเ่ี ปนผลลัพธเม่อื รันโปรแกรม
มาดตู ัวอยา งเพม่ิ เตมิ ในการเขยี นโปรแกรมท่จี ําเปน ตอ งใชตัวดาํ เนนิ การเปรยี บเทยี บเหลา น้ี ซง่ึ เปน โปรแกรมในการนบั จํานวนของผู
เขาชมหนา เวบ็ ไซต
<?php
$view = 1823073;
$str_view = "";
if ($view == 0) {
$str_view = "no view yet";
} else if ($view == 1) {
$str_view = "1 view";
} else if ($view < 1000) {
$str_view = "$pageview views";
} else if ($view < 1000000) {
$str_view = number_format($view / 1000, 1) . "K views";
} else if ($view < 10E9) {
$str_view = number_format($view / 1000000, 1) . "M views";
} else {
$str_view = number_format($view / 10E9, 1) . "B views";
}
echo "This page has " . $str_view . ".";
?>
ในตวั อยาง เปน โปรแกรมในการนบั จาํ นวนการดูหนา ของเว็บไซต ในตัวแปร $view เปนจาํ นวนครง้ั ทั้งหมดของการดู เราไดใ ชค าํ ส่ัง
If ในการตรวจสอบเพ่อื ใหเปนการแสดงขอ มลู ในรปู แบบทส่ี นั้ ขึน้ เชน ถาหากมีการดู 1,000,000 คร้งั เราจะแสดง 1M แทน
This page has no view yet.
This page has 34 views.
This page has 5.6K views.
This page has 1.8M views.
นเี่ ปน ผลลัพธของโปรแกรมเมอ่ื เราเปลีย่ นคา ของ $view เปน 0, 34, 5625 และ 1823073 ตามลาํ ดับ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
42
ตอ ไปเปน ตวั อยางในการเปรยี บเทยี บคาของขอ มลู ตา งประเภทกัน แตคาอาจจะเทา กนั เม่อื นําไปใชเหมอื น Boolean
<?php
$x = 1;
$y = "1";
echo "x == y -> ", var_dump($x == $y);
echo "x === y -> ", var_dump($x === $y);
$is_rain = 1;
if ($is_rain) {
echo "It is raining now.\n";
}
$male = true;
if ($male) {
echo "You are a boy.\n";
} else {
echo "You are a girl.\n";
}
echo "is_rain == male -> ", var_dump($is_rain == $male);
echo "is_rain === male -> ", var_dump($is_rain === $male);
?>
ในตัวอยาง เปน การเปรยี บเทยี บความเทากันของขอ มูลตา งประเภทกนั ซง่ึ ขอ มูลประเภทอน่ื ท่ไี มใช Boolean เมอ่ื ถกู นํามาใชใน
บริบทของ Boolean เชน การเปรียบเทยี บ การใชกบั คาํ สั่งเลือกเงอ่ื นไขหรอื คําสั่งวนซาํ้ มนั สามารถทํางานเหมือน Boolean ได
$x = 1;
$y = "1";
echo "x == y -> ", var_dump($x == $y);
echo "x === y -> ", var_dump($x === $y);
echo "x + y -> ", var_dump($x + $y);
ในตวั อยาง เรามีตัวแปร $x ซ่งึ เปนขอมลู แบบ Integer และตัวแปร $y เปนขอ มูลแบบ String เมอ่ื นําขอมลู มาเปรยี บเทยี บกันดวย
ตวั ดาํ เนนิ การ == จะไดผ ลลัพธเปน true แตเ ม่อื นํามาเปรียบเทียบกนั โดยตวั ดาํ เนนิ การ === จะไดผ ลลัพธเ ปน false เพราะวา ตวั
ดาํ เนนิ การนต้ี องเทา กนั ท้ังขอ มูลและประเภทของตัวแปร
echo "x + y -> ", var_dump($x + $y);
ตอ มาเปน การนาํ ตวั แปรทง้ั สองมาบวกกัน ซึ่งเปนการบวกระหวาง Integer กบั String ซงึ่ ในภาษา PHP ขอ มูลแบบ String นั้นมี
ลาํ ดบั ความสําคญั นอยกวา Integer ทําใหไ ดผ ลลัพธส ดุ ทา ยเปน Integer
$male = true;
if ($male) {
echo "You are a boy.\n";
} else {
echo "You are a girl.\n";
}
echo "is_rain == male -> ", var_dump($is_rain == $male);
echo "is_rain === male -> ", var_dump($is_rain === $male);
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
43
ตอมาเปนการเปรยี บเทียบคาของ Integer ในบรบิ ทของ Boolean เหมอื นทเ่ี ราเคยบอกไปวา True นัน้ มคี าเทากบั 1 ดงั นัน้ เม่อื ใช
กับคําสั่ง If หรอื เปรยี บเทียบกันดว ยตัวดําเนินการ == จึงไดผ ลลัพธเ ปน true แตไดผ ลลพั ธเ ปน false เมือ่ ทาํ การเปรียบเทียบความ
เทากนั ของประเภทของขอ มลู ได
x == y -> bool(true)
x === y -> bool(false)
x + y -> int(2)
It is raining now.
You are a boy.
is_rain == male -> bool(true)
is_rain === male -> bool(false)
และนีเ่ ปน ผลลพั ธเ มอื่ รันโปรแกรมในตัวอยา งขางบน
Logical operators
ตัวดาํ เนนิ การตรรกศาสตร (Logical operators) คอื ตวั ดําเนนิ การสาํ หรับสราง Expression จาก Expression ยอ ยๆ โดย
ผลลัพธที่ไดจ ะเปน Boolean ทม่ี ีคา True หรือ False ตอไปนเ้ี ปนตัวดําเนินการตรรกศาสตรใ นภาษา PHP
Operator Example Result
and $expr1 and $expr2 เปนจรงิ ถาหาก Expression ท้งั สองเปน จริง ไมเชน นนั้ เปน เท็จ
or $expr1 or $expr2 เปน จริงถาหากอยา งนอ ยหนึง่ Expression เปนจรงิ ไมเ ชนนัน้ เปน เท็จ
xor $expr1 xor $expr2 เปนจริงถา หาก Expression ทั้งสองมคี า ท่ตี า งกนั ไมเชนนั้นเปนเทจ็
not not $expr1 เปน จรงิ ถาหาก Expression เปนเทจ็ และเปน เท็จถาหาก Expression เปนจรงิ
&& $expr1 && $expr2 เปน จรงิ ถา หาก Expression ท้งั สองเปนจรงิ ไมเชน นั้นเปนเท็จ (อกี รูปแบบของ and)
|| $expr1 || $expr2 เปน จริงถาหากอยางนอ ยหนึง่ Expression เปนจรงิ ไมเ ชน นั้นเปนเท็จ (อีกรูปแบบของ or)
! !$expr1 เปน จริงถา หาก Expression เปน เท็จ และเปน เท็จถา หาก Expression เปน จรงิ (อีกรปู แบบของ not)
ในภาษา PHP คุณสามารถใชต วั ดาํ เนินการตรรกศาสตรรปู แบบใดกไ็ ด เชน and เปนแบบประโยค และ && เปน แบบสัญลกั ษณซ ่งึ
ไดผลลพั ธเชน เดยี วกัน ซึ่งในบทเรยี นนีส้ วนมากแลวเราจะใชแ บบสญั ลกั ษณม ากกวา
<?php
$expr1 = (1 == 1); // true
$expr2 = (10 > 20); // false
$expr3 = $expr1 && $expr2; // false
$expr4 = $expr1 || $expr2; // true
$expr5 = !$expr4; // false
echo "expr1 = $expr1\n";
echo "expr2 = $expr2\n";
echo "expr3 = $expr3\n";
echo "expr4 = $expr4\n";
echo "expr5 = $expr5\n";
echo "expr1 = " , var_dump($expr1);
echo "expr2 = " , var_dump($expr2);
echo "expr3 = " , var_dump($expr3);
echo "expr4 = " , var_dump($expr4);
echo "expr5 = " , var_dump($expr5);
?>
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
44
ในตัวอยา ง เปน การสรา ง Expression จากตวั ดาํ เนินการตรรกศาสตรแบบตางๆ ในตอนแรกของโปรแกรมเรามีตัว
แปร $expr1 สาํ หรับเก็บคา การเทากบั ของ 1 และ 1 เน่อื งจากท้ังสองคาเทา กนั ตวั แปรน้จี ึงมคี า เปน true สําหรบั ตัว
แปร $expr2 นน้ั 10 ไมม ากกวา 20 ดงั นน้ั จึงมีคาเปน false
$expr3 = $expr1 && $expr2; // false
ในตวั แปร $expr3 เปนการรวมของสอง Expression เขา ดวยกันดว ยตวั ดาํ เนนิ การ and ใน $expr1 && $expr2 ซึ่งหมายความวา
"ถาหาก 1 เทากบั หนึง่ และ 10 มากกวา 20" เน่ืองจากนพิ จนไ มเปน จรงิ ทาํ ให $expr3 เปน false
$expr4 = $expr1 || $expr2; // true
ในตวั แปร $expr4 เปน การรวมของสอง Expression เขาดว ยกันดว ยตวั ดําเนินการ or ซ่ึงหมายความวา "ถา หาก 1 เทา กับ
หน่ึง หรอื 10 มากกวา 20" เนือ่ งจากมนี พิ จนอ ยา งนอยหนึ่งนิพจนเ ปนจรงิ $expr4เปน true
$expr5 = !$expr4; // false
ในคําส่งั นี้เปนการใชตัวดาํ เนินการ not ในการกลับคา ของ Boolean ใหเ ปน คา ตรงขา ม ซ่ึงในตัวแปร $expr4 มีคา เปน true ผลลัพธ
ของตัวแปร $expr5 จงึ เปน false
expr1 = 1
expr2 =
expr3 =
expr4 = 1
expr5 =
expr1 = bool(true)
expr2 = bool(false)
expr3 = bool(false)
expr4 = bool(true)
expr5 = bool(false)
นเี่ ปน ผลลัพธการทํางานของโปรแกรม ซง่ึ ในภาษา PHP คา ฺBoolean ของ true จะถูกแสดงเปน 1 และคา false จะแสดงเปน 0
หรือ String ทวี่ างปลา วเหมือนท่คี ณุ เหน็ ในผลลัพธ เราใชฟงกช ัน var_dump() เพื่อแสดงประเภทและคา ทแี่ ทจรงิ ของตวั แปร
ตอไปมาดตู วั อยา งการประยุกตใชง านตัวดาํ เนนิ การตรรกศาสตรใ นการเขียนโปรแกรม
<?php
define("ADMIN_USERNAME", "danny");
define("ADMIN_PASSWORD", "mat93qs6");
$username = "danny";
$password = "12345678";
if ($username == ADMIN_USERNAME && $password == ADMIN_PASSWORD) {
echo "Login success.";
} else {
echo "Username or password is invalid.";
}
?>
ในตัวอยา ง เปนโปรแกรมในการตรวจสอบการเขา สรู ะบบของเวบ็ ไซต ใหต ัวแปร $username และ $password เปนคา ทรี่ ับมาจาก
ฟอรม ในการเขา สรู ะบบทงั้ ชอ่ื ผใู ชแ ละรหัสผา นตอ งถูกตอง ดงั นนั้ เราใชต ัวดาํ เนินการ and (&&) สาํ หรบั เง่อื นไขดังกลา ว
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
45
Username or password is invalid.
นเ่ี ปน ผลลพั ธเ มอ่ื รนั โปรแกรม ซ่ึงจะพบวาการเขาสรู ะบบไมสาํ เรจ็ ถึงแมว าชอื่ ผใู ชถ กู ตอ ง แตร หสั ผา นน้ันไมถ ูกตอง
ตวั อยางตอไปเปน การใชง านตวั ดําเนนิ การ Or กบั การตรวจสอบหลายเงอื่ นไข
<?php
$name = "Marcus";
$age = 18;
$money = 120;
if ($age >= 20 || $money >= 100) {
echo "$name can enter the party.";
} else {
echo "$name must have accept age or enough money.";
}
?>
ในตัวอยางเปนโปรแกรมตรวจสอบการเขา ปารต้ี เพอื่ เขา รว ม Marcus จําเปนตอ งมีอายตุ ัง้ แต 20 ปขน้ึ ไป หรือมีเงนิ ตงั้ แต 100
เหรียญขึ้นไป
Marcus can enter the party.
นเ่ี ปนผลลัพธข องโปรแกรม ซงึ่ ในผลการทํางานนั้น Marcus สามารถเขา รว มปารต ้ีได เพราะถงึ แมเ ขาจะอายไุ มถงึ 20 ป
แตเขามเี งนิ ถึง 100 เหรียญ ซ่งึ ตัวดําเนินการ Or นน้ั ตอ งการอยางนอ ยหน่ึง Expression ท่จี ะเปนจรงิ
String Concatenation Operator
ในภาษา PHP เครอื่ งหมายในการตอ String คือจุด (.) ใชสําหรับตอ String ตงั้ แตสอง String ใหเ ปน String เดียวกัน
$str = "marcus" . "code";
ในตวั อยา ง เปนการใชเครอื่ งหมายตอ String สําหรบั ตอ สอง String เขา ดวยกัน ซ่ึงจะได String ใหมใ นตัวแปรเปน "marcuscode"
คุณสามารถเรยี นรเู กย่ี วกบั String ไดในบทของ String
Ternary Operator
Ternary Operator คอื ตวั ดาํ เนินการตรวจสอบเงอ่ื นไขแบบส้นั โดยตัวดําเนนิ การใชเคร่ืองหมาย ? และมี Operand สาม
ตัว ซงึ่ มีรปู แบบการใชง านดังนี้
expression ? value for true : value for false;
คณุ สามารถเรียนรูเพม่ิ เติมเกีย่ วกบั Ternary Operator ไดใ นบทของคําส่งั เลอื กเงือ่ นไขของบทเรยี นนี้
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก
46
Operators precedence
ลาํ ดับความสําคญั ของตวั ดําเนินการ (Operators precedence) คอื การจัดลาํ ดบั การทํางานของตัวดําเนินการตางๆ ใน
ภาษา PHP โดยตัวดําเนนิ การท่มี ลี าํ ดับความสําคญั มากทส่ี ดุ จะทํางานกอนตวั ดาํ เนนิ การท่ีมีลําดบั ความสาํ คญั นอ ย ในตารางขา งลา ง
เปน ลาํ ดับความสาํ คญั ของตัวดาํ เนนิ การทเ่ี รียงจากความสาํ คญั มากที่สุดไปยงั นอยทส่ี ุด
Associativity Operators
non-associative clone new
left [
right **
right ++ -- ~ (int) (float) (string) (array) (object) (bool) @
non-associative instance of
right !
left * / %
left + - .
left <<>>
non-associative < <= > >=
non-associative == != === !== <> <=>
left &
left ^
left |
left &&
left ||
right ??
left ?:
right = += -= *= **= /= .= %= &= |= ^= <<= >>=
left and
left xor
left or
คุณสามารถกําหนดความสําคญั ใหก บั ตวั ดาํ เนินการหรือกลุมของ Expression ไดโ ดยการใสเ คร่อื งหมายวงเลบ็ () ลอมรอบ
มาดตู วั อยา งการทาํ งานของลําดับความสําคญั ของตวั ดําเนนิ การในภาษา PHP
<?php
$a = 2 + 3 * 5;
echo "a = $a\n";
$b = (2 + 3) * 5;
echo "b = $b\n";
?>
ในตัวอยา งในตวั แปร $a จะไดค า เปน 17 เพราะวาเคร่ืองหมายการคูณ * มีลาํ ดับความสําคญั มากกวา การบวก ดงั นน้ั การทํางานจงึ
เปนการนาํ 3 คณู กบั 5 กอ น แลว คอ ยนาํ ผลลัพธไปบวกกบั 2 ซงึ่ เปน การทาํ งานตามปกติ
การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ
สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก