บทที่ 3 ภาษา PHP เบือ้ งตน้ ในบทนจ้ี ะกลา่ วถึงขั้นตอนในการพัฒนาเวบ็ แอพลิเคชนั่ เบื้องตน้ การทางานของภาษาท่ีอยู่ฝ่ัง เว็บเซิร์ฟเวอร์ ซึ่งใช้ภาษา PHP ในการพัฒนา โดยกล่าวถึงประวัติความเป็นมาของภาษา PHP การ ติดต้ังหรือจาลองเว็บเซิร์ฟเวอร์เพื่อให้สามารถรันภาษา PHP ได้ และโครงสร้างเบ้ืองต้นของภาษา PHP รวมถึงการเรียกใช้งานการประมวลผลภาษา PHP เพื่อเป็นพ้ืนฐานให้กับผู้อ่านในการศึกษาใน บทตอ่ ๆ ไป 3.1 ประวตั ขิ องภาษา PHP php.net (2017) ได้กล่าวไว้ว่า ภาษา PHP อ่านว่า พีเอชพี เกิดในปี พ.ศ. 2537 โดย Rasmus Lerdorf โปรแกรมเมอร์ชาวอเมริกันได้คิดค้นสร้างเครื่องมือ เพ่ือใช้ในการพัฒนาเว็บไซต์ ส่วนตัวของเขา โดยนาข้อดีของภาษา C และ Perl มาพัฒนาต่อ เรียกว่า Personal Home Page Tools และได้สร้างส่วนติดต่อกับฐานข้อมูลท่ีชื่อว่า Form Interpreter (FI) รวมท้ังสองส่วน เรียกว่า PHP/FI ซึ่งก็เป็นจุดเริ่มต้นของ PHP จึงมีคนที่เข้ามาเยี่ยมชมเว็บไซต์ของเขาแล้วมีความสนใจ จึง ตดิ ต่อขอนาเอาโค้ดไปใช้หรือนาไปพัฒนาต่อในลกั ษณะของโอเพนซอร์ซ ภายหลังมีความนิยมข้ึนเป็น อย่างมากภายใน 3 ปีมี เว็บไซตน์ า PHP/FI มาใช้ในการพัฒนาเว็บไซตม์ ากกว่า 50,000 เว็บไซต์ โดย มีเว็บไซต์หลัก คือ เว็บไซต์ php.net สาหรับให้ข้อมูลต่าง ๆ ของภาษาพีเอชพี เช่น ข้อมูลการ ปรบั ปรงุ /พัฒนาภาษา, การดาวน์โหลดโปรแกรม PHP และเอกสารคมู่ อื ภาษา PHP เปน็ ต้น ภาพท่ี 3.1 Rasmus Lerdorf ผู้คิดคน้ ภาษา PHP ท่ีมา : https://en.wikipedia.org/wiki/Rasmus_Lerdorf การพัฒนาเวบ็ ไซต์ทางธุรกิจชนั้ สงู นริ นั ดร ผานิจ
34 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ ตวั อยา่ ง PHP/FI Code <!--include /text/header.html--> <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> Hey, you are using Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> ไม่พบขอ้ มูลผใู้ ชง้ านทีท่ า่ นต้องการ <p> <!--endif exit--> ยินดีตอ้ นรบั คุณ <!--$user-->! <p> สิทธใิ นการใชง้ านระบบของท่านคือ <!--$index:0--> ค่ะ.<p> <!--include /text/footer.html--> ภาษา PHP เวอร์ชัน 2 ถูกพัฒนาในช่วงระหว่างปี พ.ศ. 2538-2540 โดย Rasmus Lerdorf ได้เชญิ ชาวชาวอิสราเอล 2 คนคอื Zeev Suraski และ Andi Gutmans เขา้ มาชว่ ยกันในการปรับปรุง ภาษา PHP ใหม่ โดยใชภ้ าษา C++ ในการพฒั นาให้มคี วามสามารถจดั การเกย่ี วกับแบบฟอร์มข้อมูลที่ ถูกสร้างมาจากภาษา HTML และสนับสนุนการติดต่อกับโปรแกรมจัดการฐานข้อมูล mSQL จึงทาให้ ภาษา PHP เริ่มถูกใช้มากขึ้นอย่างรวดเร็ว และเริ่มมีผู้สนับสนุนการใช้งาน PHP มากข้ึนในปลายปี พ.ศ. 2539 ภาษา PHP ถูกนาไปใช้ประมาณ 15,000 เว็บทัว่ โลก และเพิ่มจานวนขน้ึ เรื่อย ๆ ภาษา PHP 3 พัฒนาในช่วงระหว่างเดือนมิถุนายน พ.ศ. 2540 ใช้ช่ือภาษา PHP ( Hypertext Preprocessor) มีคุณสมบัติเด่นคือ สนับสนุนระบบปฏิบัติการท่ีหลากหลายท้ัง Window, Linux และเว็บเซร์ฟเวอร์ IIS, PWS, Apache, OmniHTTPd อีกทั้งสนับสนุนระบบ ฐานข้อมูลได้หลายรูปแบบเชน่ SQL Server, MySQL, mSQL, Oracle, Informix, ODBC เป็นตน้ ภาษา PHP เวอร์ช่ัน 4 พัฒนาข้ึนในช่วงปลายปี 2541 โดยมี Zend Engine ซึ่งพัฒนาโดย บริษัท Zend ซึ่งมี Zeev และ Andi Gutmans โปรแกรมเมอร์ชาวอิสราเอลเป็นผู้ร่วมก่อต้ัง โดยได้ เพ่ิมฟังก์ชันต่าง ๆ ไว้รองรับและอานวยความสะดวกกับนักพัฒนาเว็บ ทาให้มีผู้เปล่ียนมาใช้ภาษา PHP ในการพัฒนาเวบ็ ไซตเ์ พ่มิ มากขึน้ เป็นจานวนมาก การพฒั นาเวบ็ ไซตท์ างธุรกจิ ชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งตน้ | 35 Andi Gutmans Zeev ภาพที่ 3.2 Andi Gutmans และ Zeev ผู้ก่อต้ังบริษัท Zend ท่ีมา : https://en.wikipedia.org/wiki/Zeev_Suraski ภาษา PHP เวอร์ช่ัน 5 พัฒนาข้ึนในช่วงปี พ.ศ. 2547 โดยได้เพ่ิมฟังก์ชันการทางานในด้าน การเขยี นแบบ การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) รวมท้ังฟังก์ชันในการ เชื่อมต่อฐานขอ้ มูล MySQLi และ SQLite และ Zend Engine 2.0 เป็นต้น ภาษา PHP เวอร์ชัน 7.2.6 คือ เวอร์ชันล่าสุด (ณ วันที่ 5 มกราคม พ.ศ. 2561) ของภาษา PHP ประสทิ ธิภาพดีข้ึนมาก มีความเร็วข้ึนเฉล่ยี เป็นสองเทา่ ตวั เทียบกบั PHP 5.6 ภาพที่ 3.3 โลโก้ PHP ที่มา http://php.net/images/logos/php-logo.eps 3.2 การตดิ ตงั้ เว็บเซริ ์ฟเวอร์ Peter MacIntyre (2010: 3-4) ได้กล่าวไว้ว่า ภาษาพีเอชพี เป็นภาษาแบบ ทางานอยู่ฝ่ัง เว็บเซอร์เวอร์ (Web Server) ในการพัฒนาเว็บด้วยภาษาพีเอชพี จึงจาเป็นต้องจาลองเคร่ือง คอมพิวเตอร์ให้เป็นเว็บเซอร์เวอร์ ซ่ึงในตาราเล่มนี้จะใช้โปรแกรม Xampp ในการจาลองเว็บเซอร์ เวอร์ ซึ่งโปรแกรม Xampp ประกอบด้วยโปรแกรม Apache HTTP Server, MySQL database และสครปิ ต์ PHP รวมทง้ั โปรแกรมภาษา Perl ด้วย XAMPP คอื ย่อมาจาก X = Cross Platform (Windows, MAC OS, Solaris and Linux) A = Apache M = MySQL การพัฒนาเว็บไซต์ทางธุรกจิ ชนั้ สูง
36 | บทท่ี 3 ภาษา PHP เบอื้ งต้น P = PHP P = Perl ภาพที่ 3.4 โลโก้โปรแกรม Xampp ท่ีมา : https://www.apachefriends.org/ โดยสามารถดาวน์โหลดไดท้ ีเ่ ว็บไซต์ https://www.apachefriends.org/ มขี ัน้ ตอนการ ตดิ ตง้ั ดงั นี้ คลก้ิ Yes เพือ่ ติดต้ัง การพัฒนาเว็บไซตท์ างธุรกจิ ชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งตน้ | 37 คลก้ิ Next > เลอื กคอมโพเนนทท์ ่ีต้องการแลว้ คลิ้ก Next > การพฒั นาเว็บไซตท์ างธุรกิจชนั้ สงู
38 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ เลือกโฟลเดอรต์ าแหน่งทต่ี อ้ งการติดต้งั แล้วคลิ้ก Next > คลิ้ก Next > การพัฒนาเว็บไซต์ทางธุรกิจชนั้ สูง
บทท่ี 3. ภาษา PHP เบอื้ งตน้ | 39 คล้กิ Allow access การติดตั้งเสร็จสมบูรณ์ คลิก้ Finish การพัฒนาเว็บไซตท์ างธุรกจิ ชนั้ สงู
40 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ ภาพท่ี 3.5 ขน้ั ตอนการตดิ ต้ังโปรแกรม Xampp ท่ีมา : ผ้เู ขียน ให้ทาการ Start Apache เพ่ือรนั เวบ็ เซอร์เวอร์ และ Start MySql เพ่อื รนั ฐานขอ้ มลู MySql ในส่วนโครงสร้างของโฟลเดอรข์ องโปรแกรม Xampp จะมีโฟลเดอร์หลัก ๆ ท่ีน่าสนใจ ดงั นี้ ภาพท่ี 3.6 โครงสรา้ งไฟลโ์ ปรแกรม Xampp ทม่ี า : ผู้เขียน โฟลเดอล์ apache เก็บโปรแกรม apache โฟลเดอล์ htdocs เป็นพืน้ ท่ีเว็บเซอรเ์ วอร์ โดยไฟลภ์ าษา PHP ก็บันทึกทโ่ี ฟลเ์ ดอร์น้ีเช่นกนั การพัฒนาเว็บไซตท์ างธุรกจิ ชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งต้น | 41 โฟลเดอล์ mysql เก็บฐานขอ้ มูล mysql โฟลเดอล์ php เก็บข้อมลู ภาษา php โฟลเดอล์ phpMyAdmin เก็บขอ้ มูลโปรแกรม เว็บ phpMyAdmin ตัวอย่าง การสร้างโฟล์เดอร์และสร้างไฟล์ first.php ในโฟล์เดอร์ test ซ่ึงอยู่ในโฟล์เดอร์ htdocs C:\\xampp\\htdocs\\test\\first.php เวลาแสดงผลบนเว็บบราวเซอร์ให้กรอกยูอาร์แอล http://127.0.0.1/test/first.php 3.3 โครงสร้างของภาษา PHP ภาษา PHP ทางานอยู่ฝั่งเว็บเซิร์ฟเวอร์ (Server Side scripting) โดยรูปแบบการทางานจะ เป็น embedded scripting โดยทาการแทรกอยู่ระหว่างแท็กของภาษา HTML ในการกาหนดไฟล์ PHP สามารถกาหนดนามสกุลเป็น .php, .php3 หรือ .php4 เป็นต้น ซ่ึงรูปแบบไวยากรณ์ของ ภาษา PHP เป็นรูปแบบเดียวกับภาษา C, Perl และ Java ทาให้ผู้ใช้ที่มีพื้นฐานของภาษาเหล่านี้อยู่ แล้วสามารถศกึ ษา และใช้งานภาษานไ้ี ดไ้ มย่ าก ภาษา PHP จะเป็นส่วนประกอบภายในเว็บเพจ โดยคาสั่งจะปรากฏระหว่าง <?php พนื้ ท่ีคาสั่งของภาษา PHP ?> หรอื <script language=\"php\"> พื้นทค่ี าส่งั ของภาษา PHP </script> ตัวอย่างภาษา PHP <?php echo \"เรารกั มหาวิทยาลยั ราชภัฏอดุ รธาน\"ี ; ?> การพัฒนาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
42 | บทท่ี 3 ภาษา PHP เบอื้ งต้น 3.4 การทางานรว่ มกนั ระหว่างภาษา HTML และภาษา PHP ภาษา html เป็นภาษาทที่ างานอยฝู่ ่ังไคล์เอ็น แสดงผลโดยใช้เวบ็ บราวเ์ ซอร์ ส่วนภาษา PHP เป็นภาษาที่ทางานอยู่ฝั่งเซอร์เวอร์ เมื่อประมวลผลเสร็จ ภาษา PHP จะแปลงโค้ดให้อยู่ในรูปแบบ ภาษา HTML ก่อนข้อมลู กลับไปให้กบั ฝงั่ ไคลเ์ อน็ ฝง่ั Server ภาษา PHP ฝ่ัง Client ภาษา HTML CSS ภาพที่ 3.7 การประมวลผลของภาษา PHP ที่มา : http://i3.sitepoint.com/graphics/1733_first_principles.thumb.jpg ภาพท่ี 3.8 ตวั อย่างเวบ็ บราว์เซอร์ ทม่ี า : http://21.worawut-k.ws/wp-content/uploads/2013/07/I0342.jpg ภาษา PHP จะแทรกระหวา่ งภาษา html ตวั อย่างเช่น ไฟล์ test.php <html lang=\"th\"> <head> <meta charset=\"UTF-8\"> <title>We Love UDRU</title> </head> การพฒั นาเวบ็ ไซต์ทางธุรกิจชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งตน้ | 43 <body> <b> พ้นื ท่ภี าษา PHP <?php ?> echo \"เรารกั มหาวิทยาลยั ราชภฏั อดุ รธาน\"ี ; </b> <br/> สีประจามหาวิทยาลัยราชภฏั อดุ รธานีมีสดี ังนี้ <br/> <font color=\"#009900\">สเี ขียว</font> และ <?php พน้ื ท่ีภาษา PHP ?> echo \"<font color=\\\"#FFFF00\\\">สเี หลือง</font> \"; </body> </html> เมอื่ ประมวลผลภาษา PHP ท่ีเว็บเซอรเ์ วอร์เสร็จจะได้โค้ดภาษา html กอ่ นส่งกลบั ไปยงั เครือ่ งไคลเอน็ ดังน้ี <html lang=\"th\"> <head> <meta charset=\"UTF-8\"> <title>We Love UDRU</title> </head> <body> <b> เรารักมหาวทิ ยาลัยราชภัฏอดุ รธานี </b> <br> สีประจามหาวิทยาลัยราชภฏั อดุ รธานมี ี ดงั นี้ <font color=\"009900\">สีเขยี ว</font> และ <font color=\"009900\">สเี หลือง</font> </body> </html> การพฒั นาเว็บไซตท์ างธุรกจิ ชนั้ สงู
44 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ 3.5 คาสั่ง echo และ print คาส่ัง echo เป็นคาสั่งสาหรับการแสดงข้อมูลออกทางหน้าจอภาพ ซ่ึงเป็นคาสั่งพ้ืนฐาน มีรูปแบบการแสดงผลร่วมกับ เครื่องหมาย ' (Single Quote) หรือ \" (Double Quote) โดยแต่ละ คาสั่งในภาษา PHP จะปิดท้ายคาส่ังด้วยเครอ่ื งหมายอฒั ภาค ; (Semicolon) ตวั อย่างเชน่ <?php echo \"เรารักมหาวิทยาลยั ราชภัฏอดุ รธานี\"; echo 'เรารักมหาวทิ ยาลัยราชภฏั อดุ รธานี'; ?> ตัวอย่างการแสดงตวั แปร สาหรบั ตัวแปรไม่ตอ้ งใช้เครือ่ งหมาย ' หรือ \" ร่วมดว้ ย <?php $university = \"มหาวทิ ยาลยั ราชภฏั อดุ รธานี\"; $num1 = 5; $num2 = 4; echo $university. \"</br>\"; echo \"เรารกั \". $university. \"</br>\"; echo 'เรารัก'. $university. \"</br>\"; echo \"<h2>\" . $university . \"</h2></br>\"; echo $num1+$num2; ?> ในการทางานของภาษา PHP น้ัน สามารถกาหนดให้แสดงแท็กภาษา HTML โดยอยู่ใน รปู แบบของคาสง่ั echo กไ็ ด้ เชน่ <?php echo \"<font color=\\\"009900\\\">สเี ขยี ว</font> \"; echo \"<img src=\\\"./Thailand.jpg\\\">\"; ?> คาสง่ั print เป็นคาส่ังแสดงข้อมูลออกทางหนา้ จอภาพ เชน่ เดียวกันกับคาส่งั echo ตัวอยา่ ง การแสดงผลด้วยคาส่งั print การพฒั นาเวบ็ ไซตท์ างธุรกจิ ชนั้ สูง
บทท่ี 3. ภาษา PHP เบอื้ งต้น | 45 <?php $university = \"มหาวทิ ยาลัยราชภฏั อดุ รธาน\"ี ; $num1 = 5; $num2 = 4; print $university. \"</br>\"; print \"เรารกั \". $university. \"</br>\"; print $num1+$num2; print \"<font color=\\\"009900\\\">สีเขียว</font> \"; print \"<img src=\\\"./Thailand.jpg\\\">\"; ?> ซึง่ ผลการทางานของคาสั่ง echo และ print จะแสดงผลข้อมูลเหมือนกนั 3.6 ทดสอบไฟล์ภาษา PHP ในการประมวลผลภาษา PHP จะต้องทาการสร้างและเกบ็ บันทกึ ไฟลไ์ ว้ในเวบ็ เซิร์ฟเวอร์ ซ่งึ เราไดจ้ าลองเคร่ืองคอมพิวเตอรเ์ ปน็ เว็บเซริ ์ฟเวอร์ ในหัวข้อ 3.2. การติดต้ังเวบ็ เซริ ์ฟเวอร์ ในการ พัฒนาเว็บแอพลเิ คชันด้วยภาษา PHP มีขัน้ ตอนดังน้ี 1. สรา้ งไฟล์ PHP ตวั อย่าง test.php <html> <head> <meta charset=\"UTF-8\"> <title> We Love UDRU </title> </head> <body> <b> <?php echo \"เรารกั มหาวิทยาลัยราชภัฏอุดรธานี\"; ?> </b> <br/> การพัฒนาเวบ็ ไซต์ทางธุรกิจชนั้ สูง
46 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ สีประจามหาวทิ ยาลัยราชภัฏอดุ รธานมี ี ดังน้ี <br/> <font color=\"#009900\">สเี ขยี ว</font> และ <?php echo \"<font color=\\\"#FFFF00\\\">สีเหลือง</font> \"; ?> </body> </html> 2. ทาการบันทึกข้อมูลไว้ที่โฟลเดอร์ C:\\xampp\\htdocs\\ โดยระบนุ ามสกุลไฟล์เป็น php เช่น test.php (C:\\xampp\\htdocs\\test.php) 3. ทาการสตาร์ทเว็บเซิร์ฟเวอร์ ภาพที่ 3.9 สตารท์ เว็บเซริ ์ฟเวอร์ ท่มี า : ผเู้ ขียน 4. เปิดเวบ็ เราเซอร์แล้วทาการเรียกยอู ารแ์ อล http://127.0.0.1/test.php การพัฒนาเว็บไซต์ทางธุรกิจชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งตน้ | 47 ภาพที่ 3.10 ผลการรันเว็บภาษา PHP ที่มา : ผูเ้ ขยี น 3.7 หมายเหตุ (comment) หมายเหตุ (comment) หมายถึง ข้อความที่เขียนไว้ภายในโปรแกรม เพื่อใช้อธิบาย โปรแกรม โดยจะไม่ประมวลผลส่วนที่เป็นหมายเหตุในภาษา PHP มีรูปแบบหมายเหตุ มี 3 รูปแบบ ได้แก่ 1. // ใชก้ บั หมายเหตทุ มี่ ขี นาดความยาวไม่เกิน 1 บรรทัด 2. # ใช้กบั หมายเหตทุ ม่ี ขี นาดความยาวไมเ่ กนิ 1 บรรทดั 3. /**/ ใชก้ บั หมายเหตุทมี่ ขี นาดความยาวเกนิ 1 บรรทัด ตวั อย่าง test.php ทมี่ ีการใชห้ มายเหตุ <html> <head> <meta charset=\"UTF-8\"> <title> We Love UDRU </title> </head> <body> <b> <?php // คำสง่ั echo เป็ นคำสง่ั แสดงผลออกทำงจอภำพ echo \"เรารักมหาวทิ ยาลยั ราชภัฏอุดรธานี\"; ?> </b> <br/> การพัฒนาเว็บไซต์ทางธุรกิจชนั้ สงู
48 | บทท่ี 3 ภาษา PHP เบอื้ งตน้ สปี ระจามหาวิทยาลัยราชภฏั อุดรธานีมีสดี งั น้ี <br/> <font color=\"#009900\">สเี ขยี ว</font> และ <?php echo \"<font color=\\\"#FFFF00\\\">สีเหลอื ง</font> \"; /* ในคำสง่ั echo ถำ้ มเี ครอื่ งหมำย double quotation \" ตอ้ งใส่ \\ ดำ้ นหนำ้ หรอื ไมเ่ ชน่ นัน้ ก็ตอ้ งใส่ single quotation ' แทน */ ?> </body> </html> ผลการรนั เว็บ ภาพที่ 3.11 ผลการรนั เวบ็ ภาษา PHP ที่มหี มายเหตุ ทม่ี า : ผู้เขียน 3.8 คาสงวนของภาษา PHP (Reserved Word) คาสงวนเป็นคาเฉพาะที่ภาษาได้กาหนดข้ึน เพ่ือใช้เป็นไวยากรณ์ของภาษาโดยเฉพาะ ทาให้ รูปแบบไวยากรณ์น้ันเข้าใจง่าย ผู้เขียนโปรแกรมไม่สามารถนาคาสงวนมากาหนดใช้เองได้ เช่น กาหนดช่ือตัวแปร หรือกาหนดช่ือฟงั ก์ชัน เป็นตน้ คาสงวนในภาษา PHP มดี ังต่อไปน้ี การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สงู
บทท่ี 3. ภาษา PHP เบอื้ งต้น | 49 ตารางที่ 3.1 คาสงวนของภาษา PHP __halt_compiler() abstract and array() as break callable (5.4+) case catch class clone const continue declare default die() do echo else elseif empty() enddeclare endfor endforeach endif endswitch endwhile eval() exit() extends final finally (5.5+) for foreach function global goto (5.3+) if implements include include_once instanceof insteadof (5.4+) interface isset() list() namespace (5.3+) new or print private protected public require require_once return static switch throw trait (5.4+) try unset() use var while xor yield (5.5+) __CLASS__ __DIR__ (5.3+) __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ (5.3+) __TRAIT__ (5.4+) 3.9 สรุป ภาษา PHP เกิดในปี พ.ศ. 2537 โดย Rasmus Lerdorf โปรแกรมเมอร์ชาวอเมริกันได้ คิดค้นสร้างเคร่ืองมือท่ีใช้ในการพัฒนาเว็บส่วนตัวของเขา โดยเร่ิมแรกจะเรียกว่า PHP/FI ต่อมาจึง เปลย่ี นช่อื เป็น PHP มกี ารพฒั นาหลายเวอร์ชัน ซงึ่ เวอรช์ ันปัจจุบัน PHP 7 การทางานของภาษา PHP จะทางานอยู่ฝั่ง Server โดยจะทาการประมวลผลแล้วส่งข้อมูลกลับมาให้ Client ในรูปแบบของ ภาษา HTML ในการพัฒนาเว็บดา้ ยภาษา PHP จะต้องทาการจาลองเครอื่ งคอมพิวเตอรข์ องเราให้เป็นเว็บ เซอร์เวอร์ ในตารานจี้ ะใช้โปรแกรม Xampp ประกอบไปดว้ ย Apache, php, mysql เปน็ ต้น การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
50 | บทท่ี 3 ภาษา PHP เบอื้ งต้น คาถามทา้ ยบท 1. ทาไมตอ้ งติดตั้งโปรแกรม Xampp ในการพัฒนาเวบ็ ด้วยภาษา PHP 2. ให้ฝึกปฏิบัติติดตั้งโปรแกรม Xampp พร้อมทั้งปรับแต่งการคอนฟิกฟังก์ชันต่าง ๆ ของ apache และ php 3. โฟลเดอล์ htdocs ในโปรแกรม Xampp มีไวส้ าหรับทาอะไร 4. ให้นักศึกษาสร้างเว็บเพจด้วยภาษา PHP โดยใช้คาสั่ง echo หรือ print แสดงข้อความ \"เรารัก มหาวิทยาลัยราชภัฏอุดรธานี\" โดยให้ข้อความ \"เรารัก\" เป็นสีชมพู (#ff99ff) และข้อความ \"มหาวิทยาลยั ราชภัฏอุดรธานี\" เปน็ สีเขียว (#009900) 5. หมายเหตุในภาษา PHP กแ่ี บบ ประกอบดว้ ยอะไรบ้าง 6. ใหร้ ะบโุ ปรแกรมเว็บเซร์ฟเวอรท์ รี่ จู้ ักได้แก่อะไรบ้าง (ระบอุ ยา่ งน้อย 3 อย่าง) 7. ระบบฐานข้อมูลท่ภี าษา PHP สนบั สนนุ ได้แกอ่ ะไรบ้าง ? (ระบอุ ยา่ งน้อย 5 อยา่ ง) การพฒั นาเวบ็ ไซต์ทางธุรกิจชนั้ สูง
บทที่ 4 ตัวแปร และตัวดำเนนิ กำร หลังจากที่ได้ศึกษาโครงสร้างการทางานร่วมกันระหว่างภาษา HTML และภาษา PHP เบื้องต้น ในบทน้ีเป็นการศึกษาการใช้งานตัวแปร โดยตัวแปรจะใช้ในการระบุค่าท่ีได้จากการคานวณ โดยตัวแปรจะระบุตาแหน่งของข้อมูลในหน่วยความจา ต้ังแต่การตั้งชื่อตัวแปร การประกาศตัวแปร ชนิดของข้อมูล และตัวดาเนินการในการประมวลผลข้อมูล รวมท้ังฟังก์ชันท่ีใช้ในการทางานร่วมกับ ตัวแปรและตัวดาเนินการ เพ่ือเป็นพื้นฐานในการออกแบบข้ันตอนขบวนการทางานของโปรแกรมใน บทตอ่ ๆ ไป 4.1 ควำมหมำยตวั แปร (Variable) ตัวแปร (Variable) หมายถึง ช่ือท่ีโปรแกรมเมอร์กาหนดขึ้นมาเพื่อใช้เก็บค่าของข้อมูล ทต่ี ้องการนามาใช้งาน โดยตวั แปรสามารถเปลี่ยนแปลงค่าได้ เมื่อมีการกาหนดตวั แปรจะเป็นการจอง พื้นท่ีสาหรับเก็บค่าของข้อมูลในหน่วยความจา โดยใช้ชื่อของตัวแปรเพ่ืออ้างอิงตาแหน่งของข้อมูลใน หน่วยความจา ภำพที่ 4.1 การประกาศตวั แปรและการจองพน้ื ท่ใี นหนว่ ยความจา ท่มี า : ผูเ้ ขยี น 4.2 กำรตง้ั ช่ือตัวแปร ภาษา PHP มีกฎในการต้งั ช่อื ตัวแปร ดงั นี้ 1. ข้ึนต้นดว้ ยเคร่ืองหมาย $ แลว้ ตามด้วยชอ่ื ตัวแปร 2. ช่ือของตวั แปรต้องขน้ึ ตน้ ด้วย ตัวอกั ษร A-Z หรอื a-z หรอื เคร่ืองหมาย _ เท่าน้ัน (หา้ ม ขน้ึ ต้นด้วยตวั เลข) 3. ชื่อของตัวแปรตามด้วย A-Z หรือ a-z หรือ 0-9 หรือ _ เช่น $myvar; $my_var; $myVar; การพฒั นาเว็บไซต์ทางธุรกิจชนั้ สงู นริ ันดร ผานจิ
52 | บทท่ี 4 ตัวแปร และตัวดาเนนิ การ 4. ตัวแปรเป็นแบบ Case Sensitive ตัวพิมพ์ใหญ่/เล็กถือเป็นคนละตัว เช่น $myvar; $Myvar; $MyVar; $myVar; 5. ชื่อของตัวแปรจะต้องไม่ตั้งช่ือซ้ากับคาสงวนของภาษา PHP เช่น if, and, do, new, class, function เปน็ ต้น 4.3 กำรประกำศตวั แปร การประกาศตัวแปรภาษา PHP ไม่จาเป็นต้องระบุชนิดของข้อมูล เน่ืองจากตัวแปรจะ จาแนกชนิดข้อมูลโดยอัตโนมัติว่า ตัวแปรดังกล่าวเป็นข้อมูลชนิดใด เช่น ข้อความ (String), จานวน เต็ม (Integer), จานวนเลขทศนยิ ม (Float), ตรรกะ (Boolean), วตั ถุ (Object) เป็นต้น ตวั อย่ำง 4.1 การประกาศตัวแปรในภาษา PHP <?php $int_var = 12345; $str_var = \"ตวั แปรนเ้ี ก็บค่าข้อความคะ่ \"; $_age = 22; $name2 = \"นายเต้ิล\"; $slogan = \"ร้านค้าท้องถิ่น ผลติ ภณั ฑ์ลุ่มนา้ โขง\"; ?> 4.4 ชนิดขอ้ มลู ชนดิ ของขอ้ มูลในภาษา PHP มี 8 ชนิด ดงั นี้ 1. String ข้อมูลประเภทข้อความ รวมถงึ ตวั เลขและสัญลักษณ์ต่าง ๆ 2. Integer ขอ้ มูลประเภทจานวนเต็ม (จานวนทไ่ี ม่มที ศนิยม) สามารถเป็นได้ทัง้ จานวน เตม็ บวกและจานวนเตม็ ลบ 3. Float ข้อมูลท่ีเก็บข้อมูลในรูปแบบของจานวนจริง นิยมใช้ในการเก็บตัวเลขท่ีมีค่า และความละเอียดมาก เช่น ข้อมูลการคานวณทางวิทยาศาสตร์หรือตัวเลขที่มีจุด ทศนยิ ม 4. Boolean มีข้อมูลทางตรรกะท่ีเก็บค่าความเป็นจริง คือ TRUE กับค่าความเป็นเท็จ คือ FALSE 5. Array ขอ้ มูลแบบชุดซ่ึงมีการเกบ็ ข้อมูลเปน็ ลาดับ โดยมี Index ในการอา้ งถึงค่าของ สมาชกิ ในอาเรย์ 6. Object ข้อมูลชนิดอ็อปเจ็ค ซง่ึ ถูกสรา้ งมาจากคลาส 7. NULL ขอ้ มูลชนดิ พเิ ศษในการบง่ บอกถึงตวั แปรท่ีไม่ได้ถูกกาหนดหรือถูกสร้างข้ึน การพฒั นาเว็บไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตวั แปร และตัวดาเนนิ การ | 53 8. Resource ขอ้ มูลที่อา้ งถงึ แหล่งข้อมูลภายนอก ตัวอยา่ งการเรยี กใช้ขอ้ มลู ในฐานข้อมลู โดยชนิดข้อมูลของตัวแปรในภาษา PHP น้ันจะถูกพิจารณาจากค่าท่ีกาหนดให้กับตัวแปร เช่น $var1 = \"ลมุ่ แมน่ ้าโขง\"; // ตวั แปรชนิด String $var2 = 150; // ตัวแปรชนดิ Integer $var1 = true; // ตวั แปรชนิด Boolean ในการตรวจสอบชนดิ ข้อมลู ของตัวแปรสามารถตรวจสอบโดยใช้ฟังก์ชัน gettype() ใน หัวข้อ 4.11 4.5 ขอบเขตของตวั แปร ขอบเขตของตัวแปรในภาษา PHP มี 2 รปู แบบ ดังนี้ 1. global scope หมายถงึ ขอบเขตตัวแปรท่ีสามารถเข้าถึงได้ทกุ ที่ของไฟล์ PHP 2. local scope หมายถงึ ขอบเขตตวั แปรท่ีสามารถเขา้ ถึงไดเ้ ฉพาะพื้นท่ีขอบเขต ตวั แปรน้ัน ๆ เทา่ นน้ั โดยขอบเขตจะถูกระบดุ ว้ ยเคร่ืองหมาย {} ตัวอยำ่ ง 4.2 <?php $var1 = 1; // global scope function test(){ $var2; // local scope } function test2(){ $var3; // local scope } ?> การพัฒนาเว็บไซต์ทางธุรกิจชนั้ สูง
54 | บทท่ี 4 ตัวแปร และตัวดาเนนิ การ การเรยี กใชต้ ัวแปรจากภายนอก โดยการประกาศตวั แปรเป็น $GLOBALS ตัวอย่างเชน่ ตวั อย่ำง 4.3 <?php $a = 1; $b = 2; function Sum(){ $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?> ผลกำรรนั โปรแกรม 3 หรอื การประกาศโดยใช้คาว่า global เพ่อื ระบุตัวแปรท่ีอย่ใู นระดับ global ตวั อยา่ งเชน่ ตัวอยำ่ ง 4.4 <?php $a = 1; $b = 2; function Sum(){ // ทดลองใส่ comment หนา้ บรรทดั นด้ี คู รับ global $a, $b; $b = $a+$b; } Sum(); echo $b; การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตวั แปร และตวั ดาเนินการ | 55 ?> ผลกำรรันโปรแกรม 3 4.6 ตวั แปรอำร์เรย์ (Array) ตัวแปรอาร์เรย์ เปน็ ตวั แปรชนดิ หนึง่ ท่สี ามารถเก็บข้อมูลแบบเปน็ ลาดับ โดยลาดับ ขอ้ มูลนัน้ จะอยู่ในตัวแปรชอ่ื เดียวกันโดยจะมีอนิ เด็กซ์ (Index) สาหรบั ใชอ้ า้ งถงึ ตาแหนง่ ของ ขอ้ มูลในตัวแปรอาร์เรย์ ตวั อยำ่ ง 4.5 โครงสรา้ งอารเ์ รย์ 1 มิติ อาร์เรย์ $a[6]; a[0] a[1] a[2] a[3] a[4] a[5] ภำพที่ 4.2 โครงสรา้ งอาร์เรย์ 1 มติ ิ $a[6] การกาหนดค่าในอาร์เรย์ $a ตาแหน่งอนิ เด็กซ์ 0 $a[0] = \"บึงกาฬ\"; a[0] a[1] a[2] a[3] a[4] a[5] \"บงึ กาฬ\" ภำพที่ 4.3 ตัวอยา่ งการกาหนดคา่ ในอาร์เรย์ $a ในตาแหน่งอินเด็กซ์ 0 ตัวอย่ำง 4.6 การประการตวั แปรอาร์เรย์ 1 มิติ <?php $a[6]; // ประกาศตัวแปรอารเ์ รย์ a มที งั้ สนิ้ 6 ชอ่ ง การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สงู
56 | บทท่ี 4 ตวั แปร และตัวดาเนินการ $b[10]; // ประกาศตวั แปรอารเ์ รย์ b มที ัง้ สน้ิ 10 ชอ่ ง $a[0] = \"บงึ กาฬ\"; // กาหนดคา่ ใหก้ บั index 0 เทา่ กับ บงึ กาฬ echo $a[0]; // แสดงคา่ ขอ้ มลู ท่ี index ตาแหน่ง 0 ของตัวแปร $a ออกทางจอภาพ ?> ผลกำรรนั โปรแกรม บึงกาฬ 4.7 อำรเ์ รย์ 2 มติ ิ ตัวแปรอาร์เรย์ 2 มิติ เป็นตัวแปรท่ีมีการอ้างอิงถึงค่าข้อมูลโดยใช้ค่าเลขดัชนี 2 ค่า ประกอบด้วยค่าดัชนีที่ใช้ในการอ้างอิงในแนวแถว (row) และค่าดัชนีท่ีใช้อ้างอิงในแนว คอลัมน์ (column) ตัวอย่ำง 4.7 อารเ์ รย์ a เป็นอาร์เรย์ 2 มิติ มจี านวนแถว 3 และจานวนคอลัมน์ 4 ภำพท่ี 4.4 โครงสรา้ งอารเ์ รย์ 2 มติ ิ $a[3][4] ตวั อย่ำง 4.8 การประกาศตัวแปรอารเ์ รย์ 2 มิติ <?php $a[3][4]; $a[1][0] = \"พวก\"; $a[1][1] = \"เรา\"; \"พวก\" \"เรา\" \"รัก\" \"บงึ กาฬ\" \"คะ่ \" $a[1][2] = \"รัก\"; $a[1][3] = \"บงึ กาฬ\"; $a[2][3] = \"คะ่ \"; การพัฒนาเว็บไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตัวแปร และตวั ดาเนินการ | 57 echo $a[1][1]; // เรา echo $a[1][2]; // รกั echo $a[1][3]; // บงึ กาฬ ?> ผลกำรรนั โปรแกรม เรารักบึงกาฬ 4.8 ฟังก์ชัน isset() เปน็ ฟังก์ชันเพอ่ื ตรวจสอบว่า ตัวแปรนน้ั ๆ ไดถ้ กู ประกาศหรอื ถูกสรา้ งขนึ้ มาหรือยงั ถ้าหากประกาศตัวแปรแล้วมีค่าทไี่ มใ่ ช่ null หรือไม่ โดยจะคนื ค่าเปน็ จริง (True) ถา้ ตวั แปร น้นั ๆ ได้ถูกสร้างขน้ึ มา และมีค่าทไ่ี ม่ใช่ null รูปแบบ bool isset ( mixed $var [, mixed $... ] ) ตัวอย่ำง 4.9 <?php $province = \"บงึ กาฬ\"; // ประกาศตัวแปร $province // ทดลองเปลย่ี นมาเป็ นค่า $province = null; ครับ if (isset($province)) { echo \"มีการประกาศตัวแปร \\$province และไม่มีคา่ เป็น null\"; }else{ echo \"ไม่มกี ารประกาศตัวแปร \\$province หรอื ตวั แปร $province มีค่าเป็น null\"; } ?> การพฒั นาเว็บไซตท์ างธุรกจิ ชนั้ สูง
58 | บทท่ี 4 ตวั แปร และตัวดาเนนิ การ ผลกำรรนั โปรแกรม มีการประกาศตัวแปร $province และไม่มีค่าเป็น null 4.9 ฟงั ก์ชัน empty() เป็นฟังก์ชันเพื่อตรวจสอบว่า ตัวแปรน้ัน ๆ เป็นค่าว่างหรือไม่ โดยรูปแบบการเป็น ค่าวา่ งมกี ารคนื ค่าเปน็ จริงมี ดังนี้ 1. \"\" คา่ วา่ งของสตริง 2. 0 คา่ วา่ งของเลขจานวนเต็ม 3. 0.0 คา่ ว่างของเลขจานวนทศนยิ ม 4. \"0\" ค่า 0 ของสตรงิ 5. NULL 6. FALSE 7. array() อาร์เรยว์ า่ ง รปู แบบ bool empty ( mixed $var ) ตวั อย่ำง 4.10 <?php $var = 0; // ทดลองเปลยี่ นคา่ เป็ น $var = 1; และ $var = \"\"; // เป็ น true เพราะตัวแปร $var เป็ นคา่ วา่ ง if (empty($var)) { echo 'ตัวแปร $var เปน็ คา่ ว่าง'; }else{ echo 'ตวั แปร $var ไมไ่ ด้เป็นคา่ ว่าง'; } ?> การพัฒนาเว็บไซตท์ างธุรกิจชนั้ สงู
บทท่ี 4 ตวั แปร และตวั ดาเนินการ | 59 ผลกำรรันโปรแกรม ตัวแปร $var เป็นคา่ ว่าง 4.10 ฟังก์ชัน unset() ฟังก์ช่ัน unset() เป็นฟังก์ชันในการยกเลิก ลบหรือทาลายตัวแปร เพ่ือคืนค่า หน่วยความจาคืนใหก้ บั เว็บเซอร์เวอร์ รูปแบบ void unset ( mixed $var [, mixed $... ] ) ตัวอย่ำง 4.11 <?php $city = \"บงึ กาฬ\"; echo $city; // ทาลายตวั แปรเดย่ี ว unset($city); echo $city; // Undefined variable เพราะยกเลกิ ตวั แปร $city แลว้ // ทาลายตัวแปรอารเ์ รย์ unset($shopping['name']); // ทาลายตัวแปรหลาย ๆ ตัวแปรพรอ้ มกนั unset($product1, $product2, $product3); ?> ผลกำรรันโปรแกรม บงึ กาฬ Notice: Undefined variable: city in unset.php on line 8 การพฒั นาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
60 | บทท่ี 4 ตวั แปร และตัวดาเนินการ 4.11 ฟังกช์ ัน gettype() ฟังก์ชัน gettype() เพื่อใช้ตรวจสอบชนิดของตัวแปรว่ามีรูปแบบชนิดข้อมูลเป็น ชนิดใด โดยฟังก์ชันจะมีการคืนค่าเป็นชนิดของข้อมูล เช่น boolean, integer, double, string, array, object, NULL, unknown type เปน็ ตน้ รปู แบบ string gettype ( mixed $var ); ตวั อย่ำง 4.12 <?php $var1 = 1; $var2 = 1.2; $var3 = NULL; $var4 = new shoppingClass; $var5 = 'สบายดี'; echo gettype($var1); // integer echo gettype($var2); // double echo gettype($var3); // NULL echo gettype($var4); // object echo gettype($var5); // string ?> ผลกำรรนั โปรแกรม integer double NULL object string การพฒั นาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตัวแปร และตวั ดาเนินการ | 61 ตวั อย่ำง 4.13 <?php $var1 = 12; if (gettype($var1) == 'integer'){ echo \"เลขจานวนเตม็ \"; }else{ echo \"ไมใ่ ช่เลขจานวนเตม็ \"; } ?> ผลกำรรันโปรแกรม เลขจานวนเต็ม ตัวอยำ่ ง 4.14 <?php $var1 = \"สวสั ดคี ะ่ \"; if (gettype($var1) == 'integer'){ echo \"เลขจานวนเต็ม\"; }else{ echo \"ไม่ใช่เลขจานวนเตม็ \"; } ?> ผลกำรรันโปรแกรม ไม่ใช่เลขจานวนเตม็ 4.12 ตวั ดำเนินกำรทำงกำรคำนวณ (Arithmetic Operator) การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สงู
62 | บทท่ี 4 ตัวแปร และตวั ดาเนนิ การ เปน็ ตวั ดาเนนิ การทางการคานวณทางคณติ ศาสตร์ เชน่ บวก ลบ คณู หาร ยกกาลัง เปน็ ตน้ ตำรำง 4.1 ตวั ดาเนนิ การทางคณติ ศาสตร์ สัญลักษณ์ ชือ่ คำอธิบำย $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 5.6 ข้นึ ไปเท่านน้ั ) ตวั อยำ่ ง 4.15 <?php $x = 10; $y = 9; echo $x + $y; ?> ผลกำรรนั โปรแกรม 19 ตัวอยำ่ ง 4.16 <?php $x = 10; $y = 9; echo $x + $y * $x; ?> การพัฒนาเวบ็ ไซต์ทางธุรกิจชนั้ สูง
บทท่ี 4 ตัวแปร และตัวดาเนนิ การ | 63 ผลกำรรนั โปรแกรม 100 4.13 ตวั ดำเนนิ กำรทำงข้อควำม (String Operator) เปน็ การเช่อื มสตรงิ เขา้ ดว้ ยกันโดยใช้เคร่ืองหมายจดุ (.) ตำรำง 4.2 ตวั ดาเนินเกย่ี วกบั สตรงิ สัญลกั ษณ์ ชอ่ื คำอธบิ ำย $txt1 . $txt2 เชือ่ มสตริง เชื่อมข้อความ $txt1 และ $txt2 เข้าดว้ ยกัน $txt1 .= $txt2 เชือ่ มสตรงิ เช่ือมข้อความ $txt2 ต่อท้าย $txt1 ตวั อยำ่ ง 4.17 <?php $vision1 = \"มหาวิทยาลัยราชภฏั อดุ รธาน\"ี ; $vision2 = \"เปน็ ศูนยก์ ลางการศกึ ษาและวจิ ยั \"; $vision3 = \"ผลิตบัณฑติ จิตอาสา\"; $vision4 = \"พฒั นาทอ้ งถ่นิ \"; $vision3 .= $vision4; echo $vision1.$vision2.$vision3; ?> ผลกำรรันโปรแกรม มหาวทิ ยาลยั ราชภฏั อุดรธานเี ปน็ ศูนย์กลางการศกึ ษาและวจิ ยั ผลิตบัณฑิตจติ อาสาพัฒนาท้องถิ่น 4.14 ตวั ดำเนนิ กำรกำหนดค่ำ (Assignment Operator) การพฒั นาเว็บไซต์ทางธุรกิจชนั้ สงู
64 | บทท่ี 4 ตัวแปร และตัวดาเนนิ การ ตัวดาเนินการกาหนดค่าจะใช้เครือ่ งหมายเท่ากับ = โดยจะนาค่าท่ีอยู่ด้านขวามือมาเป็น ตวั กาหนดให้กบั ดา้ นซา้ ยมือ $x += $y ตำรำง 4.3 ตารางตัวดาเนินการกาหนดคา่ (Assignment Operator) สัญลักษณ์ ควำมหมำย คำอธบิ ำย $x = $y $x = $y กาหนดค่าให้ $x เท่ากับ $y $x += $y $x = $x + $y บวก $x -= $y $x = $x - $y ลบ $x *= $y $x = $x * $y คูณ $x /= $y $x = $x / $y หาร $x %= $y $x = $x % $y หารเอาเศษ ตวั อยำ่ ง 4.18 <?php $x = 10; $y = 20; $y += $x; echo $y; ?> ผลกำรรันโปรแกรม 30 4.15 ตวั ดำเนินกำรเพ่มิ และลดคำ่ (Increment/Decrement Operator) เปน็ ตวั ดาเนินการทใี่ ชส้ าหรบั เพ่ิมคา่ และลดค่าทลี่ ะ 1 โดยใชเ้ ครือ่ งหมาย ++ การพฒั นาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตัวแปร และตวั ดาเนินการ | 65 หรือ - - ซง่ึ ในตัวดาเนินการจะมี 2 รปู แบบ คือ 1. Prefix เพ่มิ คา่ หรือลดคา่ กอ่ น แล้วค่อยทางานอ่นื ๆ 2. Postfix ทางานอน่ื ก่อน แลว้ ค่อยเพ่มิ ค่าหรอื ลดคา่ มรี ูปแบบดงั นี้ ตำรำง 4.4 การเพ่มิ ค่า และการลดค่าของตวั แปร สัญลกั ษณ์ ควำมหมำย คำอธิบำย ++$x Prefix-increment เพิ่มค่า $x เข้าไป 1 แล้วค่อยทางานอน่ื ต่อ $x++ Postfix-increment ทางานอืน่ ก่อนแล้วคอ่ ยเพ่มิ ค่า $x เข้าไป 1 --$x Prefix-decrement ลดค่า $x ลงมา 1 แลว้ ค่อยทางานอื่นต่อ $x-- Postfix-decrement ทางานอ่ืนกอ่ น แลว้ คอ่ ยลดค่า $x ลงมา 1 ตัวอยำ่ ง 4.19 การเพม่ิ ค่าทีละ 1 <?php $x = 10; echo ++$x; // 11 Prefix echo $x++; // 11 Postfix echo $x; // 12 ?> ผลกำรรันโปรแกรม 111112 4.16 ตวั ดำเนนิ กำรเปรยี บเทยี บ (Comparison Operator) เป็นการเปรียบเทียบคา่ จะมีผลการเปรียบเทียบ คือ TRUE หรือ FALSE โดยจะใช้กับ คาส่ังควบคุม เช่น คาสั่ง if, คาสง่ั while เปน็ ตน้ การพฒั นาเวบ็ ไซตท์ างธุรกจิ ชนั้ สูง
66 | บทท่ี 4 ตัวแปร และตัวดาเนนิ การ ตำรำง 4.5 ตัวดาเนนิ การเปรยี บเทียบ สญั ลกั ษณ์ ควำมหมำย ตวั อย่ำง $x == $y == เทา่ กับ $x === $y $x != $y === เท่ากับและเปน็ ข้อมูลชนดิ เดยี วกัน $x <> $y != ไมเ่ ท่ากบั $x !== $y $x > $y <> ไม่เท่ากบั $x < $y !== ไมเ่ ท่ากับหรือเป็นข้อมลู ไม่เหมือนกัน $x >= $y $x <= $y > มากกว่า < นอ้ ยกวา่ >= มากกว่าหรือเท่ากับ <= นอ้ ยกว่าหรอื เทา่ กบั ตวั อยำ่ ง 4.20 การเปรียบเทยี บผลการสอบว่าผ่านหรือตก <?php $score = 88; if( $score >= 60 ){ echo \"คุณสอบผา่ น\"; }else { echo \"คุณสอบตก\"; } ?> ผลกำรรนั โปรแกรม คุณสอบผา่ น 4.17 ตวั ดำเนนิ กำรทำงตรรกะ (Logical Operator) ตวั ดาเนนิ การตรรกะจะถูกนามาใชก้ ับตัวแปรประเภท Boolean หรือ ค่าของข้อมูล เป็นจริง (1) หรอื เป็นเท็จ (0) การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตวั แปร และตัวดาเนินการ | 67 ตำรำง 4.6 ตัวดาเนินการทางตรรกะ เป็นจริงเม่ือ สญั ลักษณ์ ควำมหมำย คำอธิบำย $x และ $y เปน็ จริง $x หรอื $y เปน็ จริง and And $x and $y ถ้าค่าของ $x และ $y ตา่ งกัน $x และ $y เปน็ จรงิ or Or $x or $y $x หรอื $y เปน็ จรงิ xor Xor $x xor $y $x ไมเ่ ปน็ จรงิ && And $x && $y || Or $x || $y ! Not !$x ตัวอย่ำง 4.21 ตัวดาเนนิ การตรรกะ OR หรือ || <?php $bool = (10>5) || (20<5); echo $bool; ?> ผลกำรรันโปรแกรม 1 ตัวอย่ำง 4.22 ตัวดาเนนิ การตรรกะ AND และ && <?php $bool = (10>5) && (20<5); echo $bool; ?> ผลกำรรันโปรแกรม 0 การพฒั นาเวบ็ ไซตท์ างธุรกิจชนั้ สงู
68 | บทท่ี 4 ตัวแปร และตวั ดาเนนิ การ 4.18 ลำดับควำมสำคญั ของตัวดำเนินกำร การจัดลาดับการทางานของตัวดาเนินการต่าง ๆ มีความสาคัญเพราะจะมีผลต่อการ ทางานของภาษา PHP เช่น 1+5*3 จะได้ค่า 16 ไม่ใช่ 18 เน่ืองจากทาการ 3 *5 เท่ากับ 15 แล้วนามาบวกกันกับ 1 เน่ืองจากลาดับการ * มีความสาคญั กว่าการบวกจึงจาเป็นต้องทาการ คูณกอ่ น ดงั ตารางดงั ตอ่ ไปน้ี ตำรำง 4.7 ลาดับความสาคญั ของตัวดาเนนิ การ ลำดับควำมสำคญั ตวั ดำเนินกำร ซา้ ย [ ไมก่ าหนด ++ -- ขวา ~ - (int) (float) (string) (array) (object) (bool) @ ไม่กาหนด instanceof ขวา ! ซา้ ย * / % ซา้ ย + - . ซา้ ย << >> ไมก่ าหนด < <= > >= <> ไม่กาหนด == != === !== ซา้ ย & ซา้ ย ^ ซา้ ย | ซา้ ย && ซา้ ย || ซา้ ย ? : ขวา = += -= *= /= .= %= &= |= ^= <<= >>= => ซา้ ย and ซา้ ย xor ซา้ ย or ซา้ ย , การพัฒนาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
บทท่ี 4 ตวั แปร และตัวดาเนินการ | 69 ตัวอยำ่ ง 4.23 <?php $calculator = 9+8*10-5-4; echo $calculator; // 80 ?> ผลกำรรนั โปรแกรม 80 ตวั อยำ่ ง 4.24 <?php $calculator = 9+8*10-5--4; echo $calculator; // 88 ?> ผลกำรรนั โปรแกรม 88 4.19 ตวั แปรคำ่ คงท่ี (Constant) ตัวแปรค่าคงท่ี หมายถึง ตัวแปรท่ีไม่สามารถเปลี่ยนแปลงค่าได้ ในภาษา PHP จะใช้ คาสัง่ define() ในการกาหนดค่าคงท่ี ดงั รปู แบบดังนี้ รปู แบบ define(\"ตัวแปรคา่ คงที่\", \"คา่ คงท่ี\"); การพัฒนาเว็บไซตท์ างธุรกจิ ชนั้ สูง
70 | บทท่ี 4 ตัวแปร และตัวดาเนินการ ตัวอยำ่ ง 4.25 <?php define('MIN_AGE', '18'); define('MAX_AGE', '60'); define('NAME', 'มหาวทิ ยาลยั ราชภัฏอุดรธานี'); echo \"เรารัก\" . NAME . \".\\n<br/>\"; ?> ผลกำรรันโปรแกรม เรารักมหาวิทยาลยั ราชภฏั อุดรธาน.ี ตัวอยำ่ ง 4.26 <?php define('MIN_AGE', '18'); define('MAX_AGE', '60'); define('NAME', 'มหาวทิ ยาลัยราชภัฏอุดรธานี'); NAME = \"Udon Thani Rajabhat University\"; //ทดลองเปลย่ี นคา่ ๆคงท่ี echo \"เรารกั \" . NAME . \".\\n<br/>\"; ?> ผลกำรรนั โปรแกรม Parse error: syntax error, unexpected '=' in const.php on line 6 การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 4 ตวั แปร และตวั ดาเนนิ การ | 71 4.20 สรปุ ในการเขียนโปรแกรม ผู้เขียนต้องมีการประกาศตัวแปร เพื่อใช้เก็บค่าท่ีต้องการ นามาใช้งาน เช่น การประมวลผลข้อมูลต่าง ๆ ซ่ึงเมื่อมีการประกาศตัวแปรจะมีการเก็บข้อมูล ในหน่วยความจาขณะที่โปรแกรมทางาน โดยตัวแปรสามารถถูกเรียกใช้ได้หลายครั้ง ในภาษา PHP จะมีการประกาศตวั แปร โดยใสเ่ ครอื่ งหมายดอลลารไ์ ซน์ $ ด้านหน้าของตวั แปร ในการทางานของโปรแกรมจะมีการประมวลผลตามท่ีผู้เขียนโปรแกรมกาหนด ซึ่งจาเป็นต้อง ใช้ตัวดาเนนิ การในการกาหนดรูปแบบการทางานของโปรแกรม ทม่ี ีรูปแบบและขั้นตอนการใช้งาน หลายกลุ่มด้วยกัน ควรศกึ ษารูปแบบและข้ันตอนการทางานของตัวแปรและตัวดาเนนิ การให้เข้าใจ อย่างถ่องแท้ เพื่อให้การเขียนโปรแกรมมีความถูกต้องชัดเจน และมีข้ันตอนการทางานของ โปรแกรมตรงตามวัตถุประสงค์ของผู้ใช้งานต่อไป อีกท้ัง การลาดับความสาคัญของตัวดาเนินการ ก็มีความสาคัญเช่นเดียวกันเน่ืองจากมีผลต่อการประมวลผล เช่น 5+2*10 มีค่าเท่ากับ 25 สว่ น 5*2+10 มีค่าเทา่ กับ 17 เป็นตน้ การพัฒนาเว็บไซต์ทางธุรกิจชนั้ สูง
72 | บทท่ี 4 ตัวแปร และตวั ดาเนินการ คำถำมทำ้ ยบท 1. ตวั แปรหมายถงึ อะไร 2. ตวั แปรและคา่ คงท่แี ตกตา่ งกนั อย่างไร 3. การประกาศตัวแปรต่อไปนี้มีข้อผิดพลาดอย่างไร ให้อธิบายพร้อมทั้งระบุสาเหตุด้วยว่า เพราะเหตุใด $for $_start $9name $_9city $product1 $$price $อดุ ร $my name $name&lastname 4. ขอบเขตของตัวแปรในภาษา PHP มกี ่ีแบบ มอี ะไรบา้ ง พรอ้ มทัง้ ยกตัวอยา่ งโคด้ ประกอบ 5. ให้ทาการประกาศตัวแปรอาร์เรย์ 1 มิติ พร้อมท้ังเก็บข้อมูลหน่วยภายในจังหวัดบึงกาฬ ดังต่อไปนี้ มหาวิทยาลัยราชภฏั อุดรธานี ศนู ย์การศึกษาบึงกาฬ บึงกาฬ http://bk.udru.ac.th 38000 6. ให้นักศึกษาทาการประกาศตวั แปรอารเ์ รย์ 2 มิติ พร้อมท้งั เกบ็ ข้อมูล OTOP ดงั ต่อไปน้ี ลกู หยยี กั ษ์ หอคา 5 ปลาร้าไข่ โนนสมบรุ ณ์ 4 ครมี แกน่ มะหาด ทา่ สะอาด 4 7. ให้อธิบายความหมายและยกตวั อยา่ งการใชง้ านฟงั กช์ น่ั gettype() 8. ให้ยกตวั ดาเนินการเปรยี บเทียบระหว่าง &&, & วา่ แตกตา่ งกนั อยา่ งไร 9. กาหนดให้ $var = 100; แล้วคาสั่ง print ++$var; และ print $var++; แตกต่างกัน อย่างไร 10. $cal = 9*2+2-5+15/5 ตัวแปร $cal คา่ เท่ากบั เทา่ ใด การพัฒนาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
บทที่ 5 คำสงั่ ควบคมุ (Control Statement) การทางานของโปรแกรมจะเป็นการประมวลผลจากบนลงล่าง (Top – Down) และการ ทางานบางขั้นตอน จะต้องมีเง่ือนไขการทางานหรือการวนทางานซ้าเข้ามาเก่ียวข้อง เพ่ือให้ข้ันตอน การทางานของโปรแกรมตอบสนองความต้องการของผู้ใช้งาน เช่น เมื่อกรอกอายุ ไม่ถึง 60 ปีให้แจ้ง ว่ายงั ไม่มสี ทิ ธไิ ด้รบั เบี้ยผู้สงู อายุ เป็นตน้ คาสั่งควบคุมเป็นคาส่ังท่ีมีความสาคัญ ในการเขียนโปรแกรมเพราะเป็ นส่วนท่ีใช้กาหนด เส้นทางการทางานของโปรแกรมว่ามีข้นั ตอนวธิ ีการอย่างไร ซ่งึ คาสั่งควบคุมแบง่ ออกเป็นสองประเภท ใหญ่ใหญ่ได้แก่ 1. คาส่ังตัดสินใจเลือกคาซ่ึงจะทางานตามเง่ือนไขท่ีเป็นจริงหรือเป็นเท็จ 2. คาสั่ง วนซ้า จะทาการวนซ้าเมื่อเง่ือนไขเป็นจริง ถ้าเง่ือนไขเป็นเท็จก็จะออกจากการวนซ้า ซ่ึงท้ังคาสั่ง เงอ่ื นไขและคาสง่ั วันซา้ มหี ลากหลายคาสงั่ ด้วยกนั ดังรายละเอียดตอ่ ไปน้ี 5.1 คำสง่ั ควบคุม (Control Statement) ภาษา PHP มีคาส่ังควบคุมเพ่ือกาหนดทิศทางการประมวลผลการทางานของเว็บเพจ เพื่อให้ ได้ผลการทางาน การประมวลผลของเว็บเพ็จตรงตามความต้องการของโปรแกรมเมอร์ ภาษา PHP มี คาส่งั ควบคุมแบ่งออกเป็น 2 ประเภทหลัก ๆ ดงั นี้ 1. คาสั่งตัดสินใจเลือกทา (Decision) เป็นโครงสร้างคาสั่งให้เลือกทาอย่างใดอย่างหน่ึง หรือ ทางเลอื กใดทางเลอื กหรอื ทตี่ รงกบั เงื่อนไข 2. คาสั่งวนซ้า (Loop) เป็นโครงสรา้ งคาสงั่ ให้ประมวลผลซ้า ๆ เช่น วนซ้าในการแสดงขอ้ มูล ในฐานขอ้ มลู 5.2 คำสั่งตัดสินใจเลอื กทำ (Decision) เป็นโครงสร้างที่ใช้สาหรับกาหนดทางเลือกการประมวลผลคาส่ัง โดยข้ึนอยู่กับเง่ือนไขของ นพิ จน์เปรียบเทียบ ในการเลอื กวา่ จะประมวลผลคาสงั่ ใด ซ่ึงคาสงั่ ตดั สนิ ใจเลือกทามดี งั ต่อไปนี้ 5.2.1 คาส่ัง if 5.2.2 คาส่ัง if-else 5.2.3 คาสง่ั if ซอ้ น if 5.2.4 คาสั่ง switch การพฒั นาเวบ็ ไซตท์ างธุรกจิ ชนั้ สงู นริ ันดร ผานิจ
74 | บทท่ี 5 คาสงั่ ควบคมุ (Control Statement) เง่ือนไขเปน็ จริง เงื่อนไข เงือ่ นไขเปน็ เท็จ ภำพท่ี 5.1 รูปแบบโครงสร้างคาสง่ั ตัดสินใจแบบเลือกทา (Decision) 5.2.1 คำสั่ง if คาสง่ั if เปน็ คาสง่ั ตัดสินใจเลือกทา คาสง่ั พ้นื ฐานในการเขยี นโปรแกรม ในทกุ ๆ ภาษาเป็นการเปรยี บเทียบเงอื่ นไขเพ่ือใช้ในการตัดสนิ ใจ ถา้ เงอื่ นไขเป็นจรงิ จะทางานในพ้นื ทีข่ องคาส่งั if ถ้าเง่ือนไขเป็นเท็จจะข้ามการทางานไปทางานคาสงั่ ตอ่ จากคาสงั่ if เงือ่ นไข เงอ่ื นไขเปน็ จรงิ ภำพท่ี 5.2 รปู แบบโครงสรา้ งคาส่ัง if รูปแบบ if (เง่ือนไข) { // จะทำงำนในสว่ นน้ีถำ้ เงือ่ นไข (expression) เปน็ จริง } การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
บทท่ี 5 คาสัง่ ควบคุม (Control Statement) | 75 ในส่วนของเงื่อนไขสามารถกาหนดเงอ่ื นไขมากกว่า 1 เง่ือนไขได้ โดยการใช้ && (และ) หรอื || (หรือ) เชอ่ื มเงอ่ื นไข เชน่ if (เง่ือนไข1 && เงื่อนไข2 || เงอ่ื นไข3) { // จะทำงำนในส่วนนถ้ี ำ้ ผลของเงื่อนไขทง้ั 3 // เมื่อเปรียบเทียบทำงตรรกะแล้วไดผ้ ลเปน็ จริง } ตัวอยำ่ ง 5.1 <?php $age = 60; if ($age >= 60) { echo \"ท่านมีสทิ ธไิ ดเ้ บ้ยี ยงั ชีพคนชรา\"; } ?> ผลกำรรนั โปรแกรม ทา่ นมสี ทิ ธไิ ด้เบ้ียยังชพี คนชรา ตวั อยำ่ ง 5.2 <?php $age = 59; if ($age >= 60) { echo \"ทา่ นมสี ิทธไิ ดเ้ บ้ียยังชีพคนชรา\"; } ?> ผลกำรรนั โปรแกรม การพัฒนาเว็บไซตท์ างธุรกจิ ชนั้ สงู
76 | บทท่ี 5 คาสงั่ ควบคมุ (Control Statement) จากตวั อยา่ ง 5.1 และ 5.2 คาส่งั if ทาการตรวจสอบขอ้ มูลที่เก็บในตัวแปร $age (อายุ) ถา้ มากกว่าหรอื เท่ากบั 60 จะทาใหเ้ ง่ือนไขเปน็ จริง และจะแสดงคาวา่ \"ท่านได้เบยี้ ยังชีพคนชรา\" ถ้าน้อยกวา่ 60 จะขา้ มการทางานในคาสง่ั if ดังตวั อยา่ ง 5.2 ทก่ี าหนด $age = 59; ผลการรนั โปรแกรมจะไมแ่ สดงข้อมูลใด ๆ ตัวอย่ำง 5.3 <?php $age = 60; $nation = \"thai\"; if ($age >= 60 && $nation == 'thai') { echo \"ทา่ นมสี ทิ ธไิ ด้เบ้ียยงั ชีพคนชรา\"; } ?> ผลกำรรนั โปรแกรม ท่านมีสทิ ธิได้เบ้ียยังชพี คนชรา ตัวอยา่ ง 5.3 มีเง่ือนไข 2 เง่อื นไขคือ $age >= 60 && $nation == 'thai' เง่ือนไขที่ 1. คือเงื่อนไข $age >= 60 เงื่อนไขที่ 2. คือเงือ่ นไข $nation == 'thai' โดยเงอ่ื นไขท่ี 1. และเง่ือนไขที่ 2. เชื่อมกนั ด้วย && ซึ่งหมายถึง เงื่อนไขที่ 1. และเงอ่ื นไขที่ 2. ตอ้ งเปน็ จริงเทา่ น้นั จึงจะทางานในคาสง่ั if 5.2.2 คำส่ัง if-else คาส่งั if-else เปน็ คาสงั่ เลอื กทา เชน่ เดียวกบั คาส่งั if เป็นการเปรยี บเทียบ เงือ่ นไขข้อมูลเพอ่ื ใชใ้ นการตัดสินใจ ดังน้ี ถ้าเงอ่ื นไขเปน็ จริงจะทางานหลัง if ถา้ เปน็ เทจ็ จะทางานหลัง else การพฒั นาเว็บไซตท์ างธุรกิจชนั้ สงู
บทท่ี 5 คาสัง่ ควบคุม (Control Statement) | 77 เง่อื นไขเปน็ จรงิ เงื่อนไข เงอื่ นไขเป็นเท็จ การทางานเมอ่ื เปน็ จรงิ การทางานเมื่อเป็นเท็จ ภำพท่ี 5.3 รปู แบบโครงสร้างคาส่ัง if-else รปู แบบ if (เง่ือนไข) { // จะทำงำนในสว่ นน้ถี ำ้ เงอ่ื นไขเปน็ จริง }else{ // จะทำงำนในสว่ นนี้ถ้ำเงือ่ นไขเปน็ เทจ็ } ตัวอยำ่ ง 5.4 <?php $age = 19; if ($age >= 60) { echo \"ทา่ นมีสทิ ธิไดเ้ บีย้ ยงั ชีพคนชรา\"; }else{ echo \"ทา่ นยังไม่มสี ทิ ธิได้เบย้ี ยงั ชีพคนชรา\"; } ?> ผลกำรรนั โปรแกรม ทา่ นยังไม่มสี ิทธไิ ดเ้ บยี้ ยังชีพคนชรา จากตวั อยา่ ง 5.4 คาสง่ั if จะทาการตรวจสอบขอ้ มลู ท่เี ก็บในตัวแปร $age ถา้ ตัวแปร $age มากกว่าหรือเท่ากับ 60 จะทาให้เง่ือนไขเป็น จรงิ และจะ แสดงคาว่า \"ท่านไดเ้ บี้ยยงั ชพี คนชรา\" การพัฒนาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
78 | บทท่ี 5 คาสงั่ ควบคมุ (Control Statement) ถา้ ตัวแปร $age น้อยกว่า 60 จะทาให้เง่ือนไขเป็น เท็จ และจะแสดงคาว่า \"ท่านยังไมม่ ีสทิ ธิไดเ้ บ้ยี ยังชพี คนชรา\" 5.2.3 คำส่ัง if ซอ้ น if ในขั้นตอนการทางานบางกรณีจะมีเง่ือนไขที่สลับซับซ้อนมีการตรวจสอบ เง่ือนไขหลายรอบ ซ่ึงในภาษา PHP สามารถทาได้โดยการใช้คาสั่ง if ซ้อนคาส่ัง if เปน็ ชน้ั ๆ ได้ โดยมรี ปู แบบดงั น้ี ภำพท่ี 5.4 รปู แบบโครงสร้างคาสั่ง if ซ้อน if รปู แบบ if (เงื่อนไขที่ 1){ // เง่ือนไขท่ี 1 เป็นจรงิ if (เง่ือนไขที่ 2){ // เงื่อนไขที่ 1 เป็นจริง และ เงอ่ื นไขที่ 2 เป็นจรงิ }else{ // เงอ่ื นไขที่ 1 เป็นจรงิ และ เง่ือนไขที่ 2 เป็นเท็จ } }else{ // เงอื่ นไขที่ 1 เปน็ เทจ็ } ตวั อย่ำง 5.5 <?php การพฒั นาเว็บไซต์ทางธุรกิจชนั้ สงู
บทท่ี 5 คาสัง่ ควบคุม (Control Statement) | 79 $nationality = \"thai\"; $age = 60; เงื่อนไขที่ 1. เป็นจรงิ if ($nationality == \"thai\") { if ($age >= 60) { เงอื่ นไขท่ี 2. เปน็ จรงิ echo \"ทา่ นมีสิทธไิ ดเ้ บีย้ ยังชีพคนชรา\"; }else{ เงอ่ื นไขที่ 1. เปน็ } echo \"ทา่ นยงั ไม่มีสิทธิได้เบ้ียยงั ชีพคนชรา\"; เท็จ }else{ } echo \"สิทธเิ บ้ยี ยังชีพคนชรา เป็นสทิ ธิเฉพาะคนไทยทีม่ อี ายตุ ั้งแต่ 60 ปขี ้นึ ไป\"; ?> ผลกำรรันโปรแกรม ทา่ นมสี ิทธิได้เบ้ียยังชพี คนชรา จากตัวอย่างที่ 5.5 เง่ือนไขที่ 1. ทาการเปรียบเทียบ if ($nationality == \"thai\") ซึ่งมีค่าเป็นจริงจึงทางานหลังคาส่ัง if และทาการเปรียบเทียบเงื่อนไขที่ 2 if ($age >= 60) ซึง่ ผลการเปรียบเทยี บเงือ่ นไขเปน็ จริง จึงแสดงข้อความ “ท่านมีสิทธิ ได้เบ้ยี ยังชพี คนชรา” 5.2.4 คำสง่ั switch คาส่ัง switch เป็นคาส่ังเลือกทาเช่นเดียวกับคาสั่ง if แต่ต่างกันที่รูปแบบเง่ือนไข โดย คาสั่ง switch จะใช้ค่าตัวแปรที่ในการเปรียบเทียบค่าว่าตรงกับเงื่อนไขกรณี (case) ใด โดย จะทางานในกรณีน้ัน ๆ เมื่อทางานเสร็จก็จะทางานในกรณี ด้านล่างต่อไป แต่ถ้าเจอคาสั่ง break; ก็จะออกจาก คาส่งั switch ทนั ที ถา้ เงอื่ นไขไม่ตรงกับกรณใี ด ๆ เลย กจ็ ะทางานในสว่ นของ default การพฒั นาเวบ็ ไซต์ทางธุรกจิ ชนั้ สงู
80 | บทท่ี 5 คาสงั่ ควบคมุ (Control Statement) ภำพที่ 5.5 รูปแบบโครงสรา้ งคาสง่ั switch รปู แบบ switch (variable) { case value1: // จะทำงำนในส่วนนีถ้ ้ำ variable ค่ำเทำ่ กับ value1 break; case value2: // จะทำงำนในส่วนนี้ถ้ำ variable คำ่ เทำ่ กบั value2 break; case value3: // จะทำงำนในสว่ นน้ถี ้ำ variable คำ่ เทำ่ กับ value3 break; default: // จะทำงำนในสว่ นน้ถี ้ำ variable ไมต่ รงกบั ค่ำใดๆดำ้ นบน } variable คือค่าตวั แปรที่ใช้ในการเปรยี บเทียบค่าเง่ือนไข value1, value2 และ value3 คอื คา่ เปรยี บเทยี บตวั ที่ 1 ถึง 3 โดยจะเปรยี บเทยี บ variable ว่ามีค่าตรงกับ value ใดก็จะทางานในสว่ น นัน้ การพฒั นาเวบ็ ไซต์ทางธุรกิจชนั้ สูง
บทท่ี 5 คาสัง่ ควบคมุ (Control Statement) | 81 ตวั อยำ่ ง 5.6 <?php $sayhi = \"lao\"; // ทดลองเปลยี่ นจาก lao เป็ น Myanmar ดคู รับ switch ($sayhi) { case \"thai\": echo \"สวัสดี\"; break; case \"lao\": echo \"สะบายดี\"; break; case \"myanmar\": echo \"มิงกะลาบา\"; break; default: echo \"Hello\"; } ?> ผลกำรรันโปรแกรม สะบายดี จากตวั อย่าง 5.6 ตัวแปร $sayhi เก็บคา่ \"lao\" เมื่อนามาเปรยี บเทยี บกับกรณตี า่ ง ๆ หลัง case พบวา่ ตรงกับกรณี case \"lao\" จึงแสดงขอ้ ความ สะบายดี ออกทาง จอภาพ 5.3 คำสง่ั วนซำ (Loop) คาส่งั วนซ้า หรอื คาส่งั วนลปู ใชส้ าหรับทางานซา้ ๆ กนั ในภาษา PHP มีคาสง่ั วนลปู ทง้ั หมด 4 คาสั่ง ได้แก่ 5.3.1 คาสั่ง for 5.3.2 คาสั่ง while 5.3.3 คาสั่ง do while การพัฒนาเวบ็ ไซต์ทางธุรกจิ ชนั้ สูง
82 | บทท่ี 5 คาสงั่ ควบคุม (Control Statement) 5.3.4 คาส่งั foreach 5.3.1 คำสั่ง for เป็นการวนลูปท่ีมีการกาหนดค่าเร่ิมต้น และจะทาการลูปเม่ือเง่ือนไขเป็น จริง โดยมรี ูปแบบดงั นี้ รปู แบบ for ( initialization; condition; update ) { { // จะทางานภายในลูปเมือ่ condition เป็นจรงิ } initialization กาหนดคา่ เริม่ ตน้ condition เงื่อนไขการวนลูป โดยจะทาการวนลูปเมื่อเงอื่ นไขเปน็ จรงิ update การเปลีย่ นแปลงคา่ ตวั อย่ำง 5.7 <?php for ($counter = 1; $counter <= 10; ++$counter ) { echo $counter . \"<br />\"; } ?> ผลกำรรันโปรแกรม 1 2 3 4 5 6 7 8 9 10 การพัฒนาเวบ็ ไซตท์ างธุรกิจชนั้ สูง
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234