แนะนำภาษา PHP            ภาษา PHP เป็นโปรแกรมภาษาที่สามารถใช้งานในระบบเครือข่ายอินเทอร์เน็ตได้ ตัวหนึ่งที่มีความสามารถสูง มีผู้นิยมใช้จำนวนมาก เราสามารถบรรจุลง( Download) มาใช้ได้ฟรีโดยไม่ผิดกฎหมาย นอกจากนี้ภาษา PHP ยังสามารถทำงานร่วมกับโปรแกรม ฐานข้อมูล MySQL ซึ่งเป็นโปรแกรมดาวน์โหลดมาใช้ได้ฟรีเช่นเดียวกัน           PHP เป็นภาษาสคริปต์ ( Scripting Language ) คำสั่งต่างๆ จะเก็บในรูปของข้อความ (Text) อาจเขียนแทรกอยู่ภายในภาษา HTML หรือใช้งานอิสระก็ได้ แต่ในการใช้งานจริงมักใช้งานร่วมกับภาษา HTMl ดังนั้นการเขียนโปรแกรมนี้ต้องมีความรู้ด้านภาษา HTML เป็นอย่างดี อย่างไรก็ตามเราสามารถใช้โปรแกรมประยุกต์มาช่วยอำนวยความสะดวกในการสร้างงานได้ เช่น Macromedia Dreamweaver หรือโปรแกรมประเภท Editor (โปรแกรมที่อำนวยความสะดวกในการเขียนโปรแกรมภาษาต่างๆ ) เช่น EditPlus Macromedia Homesite ฯลฯ โปรแกรมเหล่านี้จะช่วยจำแนกคำ เช่น คำสั่ง คำทั่วไป ตัวแปร ฯลฯ ให้มีสีต่างกันเพื่อสะดวกในการสังเกต และมีตัวเลขบอกบรรทัดทำให้สะดวกในการแก้ไข             PHP เป็นภาษาที่มีการประมวลผลทางเครื่องผู้ให้บริการ (Server) โดยเป็นเครื่องมือที่ทำให้เราสามารถสร้างไฟล์เอกสารประเภท HTML ที่มีการเคลื่อนไหวเปลี่ยนแปลงได้หรือที่เรียกว่าพลวัต ( Dynamic HTML) การที่เครื่องบริการมีการประมวลผลก่อนส่งข้อมูลมายังเครื่องผู้ใช้เราเรียกว่า Server Side Include (SSI) การทำงานในลักษณะนี้ทำให้ความเร็วในการทำงานสูงขึ้นอีกด้วยโปรแกรมภาษา PHP มีข้อดีและข้อจำกัดที่พอสรุปได้ดังนี้1. เป็นโปรแกรมฟรี ( Download จากอินเทอร์เน็ตมาใช้ได้โดยไม่ผิดกฏหมาย)2. ใช้งานร่วมกับฐานข้อมูลได้หลายชนิดเช่นMySQLซึ่งเป็นของฟรีเช่นเดียวกัน3. ประมวลผลโปรแกรมทำได้รวดเร็วกว่าการใช้โปรแกรมอื่น             ภาษา PHP ใน ปัจจุบันคือ เวอร์ชั่น 5.2.0 ได้พัฒนาไปอย่างรวดเร็ว และแพร่หลายโดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับ Apache Webserver หรือระบบปฏิบัติการ Linux โดยเฉพาะ Linux SIS (เวอร์ชั่น 3,4) ซึ่งพัฒนาโดย NECTEC เมื่อติดตั้งโดยใช้ทางเลือกของค่าปริยาย (ค่าที่โปรแกรมตั้งมาให้โดยอัตโนมัติ : ค่า Default) จะสามารถใช้ภาษา PHP และฐานข้อมูล MySQL ได้โดยไม่ต้องติดตั้งอะไรเพิ่มเติมทำให้มีความสะดวกในการใช้งานเป็นอย่างยิ่งรูปแบบของการใช้คำสั่งภาษา PHP ในเอกสาร HTMLรูปแบบของภาษา PHP มีหลายแบบดังนี้1. <? …. คำสั่งภาษา PHP …..?> เรียกว่า SGML style ซึ่งนิยมใช้ที่สุด2. <?php . ….…. คำสั่งภาษา PHP ….... ?> เรียกว่า XML style3. <script language="php"> ..…. คำสั่งภาษา PHP …... </script> เรียก JavaScript style4. <% ..…. คำสั่งภาษา PHP …... %> เรียก ASP style การวางคำสั่ง PHPการวางคำสั่ง PHP สามารถแทรกไว้ภายในเอกสาร HTML ได้ ตัวอย่างเช่น (ex04_01.php)(เพื่อความสะดวกในการศึกษา คณะผู้จัดทำได้แนบไฟล์ตัวอย่าง เพื่อใช้ทดสอบโปรแกรมได้ทันที )<HTML> <HEAD><TITLE> ฝึกการเขียนภาษา PHP </TITLE></HEAD> <BODY BGCOLOR=#FFFFFF> <H1><? echo "นี่คือการแสดงผลข้อความในภาษา PHP <br></n>"; echo ("อีกรูปแบบหนึ่งของการแสดงผลข้อความในภาษา PHP ");//echo เป็นคำสั่งให้แสดงโปรแกรมแสดงผลทาง Browser// เครื่องหมาย "//" ทำให้ตัวแปลภาษามองข้ามข้อความหลังเครื่องหมายดังกล่าวเรียกเครื่องหมาย//นี้ว่า comment /* นี่ก็คืออีกรูปแบบหนึ่งของ comment ซึ่งสามารถคร่อมข้อความได้หลายบรรทัด โดยไม่ต้องใช้ comment ทุกบรรทัดดังรูปแบบข้างต้นเครื่องหมาย </n> ทำให้ภาษา PHP ส่งข้อความภาษา HTML เป็นการขึ้นบรรทัดใหม่ เครื่องหมาย <br> จะเป็นคำสั่งให้การแปลผลของ Browser ขึ้นบรรทัดใหม่*/# นำหน้าข้อความที่ต้องการ comment ได้เช่นเดียวกับเครื่องหมาย // ?></H1> </BODY> </HTML>คำสั่งแสดงผล
จากตัวอย่างเห็นว่าคำสั่งแสดงผลใช้ echo แต่จริงแล้วคำสั่งการแสดงผลออกทาง Browser มี 3 ตัว คือ echo , print และ printf แต่ละตัวมีลักษณะการใช้งานต่างกันออกไป
1. คำสั่ง echo เป็นคำสั่งแสดงผลที่สามารถแยกข้อความเป็นหลายช่วงในเครื่องหมาย “ ..” โดยแต่ละช่วงสามารถใช้เครื่องหมายจุลภาค (,) คั่น (ex04_02.php)<? echo "1+1 = ", 2 , " ครับ<br></n>" ; Echo "1+1 = ", 2 , " ครับ<br></n>" ;?> ข้อสังเกต 1. จะเห็นได้ว่าแต่ละคำสั่งในภาษา PHP จบด้วยเครื่องหมาย semicolon (;) 2. การเว้นระยะใดๆ ภายใต้เครื่องหมาย <? ………….?> หรือ Tag ของ PHP ไม่มีผลใดๆ ตัวแปลภาษาจะอ่านเครื่องหมาย Semicolon เพื่อบอกว่าเป็นจุดสิ้นสุดของบรรทัด โดยที่การใช้คำสั่งจริงอาจอยู่บรรทัดเดียวกันก็ได้ เช่น<? echo "1+1 = ", 2 , " ครับ<br></n>" ; Echo "1+1 = ", 2 , " ครับ<br></n>" ;?> 3. คำสั่งหรือ ฟังก์ชันในภาษา PHP นั้นจะเขียนด้วยตัวพิมพ์เล็กหรือใหญ่ ก็ได้มีผลเหมือนกัน (case-insensitive) 2. คำสั่ง print มีลักษณะคล้ายคำสั่ง print แต่ไม่สามารถแยกข้อความ ทุกอย่างต้องอยู่ภายใต้เครื่องหมายคำพูดเดียวกัน ตัวอย่างเช่น (ex04_03.php)<?Print ("นี่คืออีกรูปแบบหนึ่งของการแสดงผลในภาษา PHP ");// ทุกอย่างต้องอยู่ภายในเครื่องหมายคำพูดเดียว //อาจใช้เครื่องหมาย "\" เพื่อต้องการให้แสดงผลเป็นเครื่องหมายคำพูด เช่นPrint ("การแสดงผลในภาษา PHP \" เป็นเครื่องหมายคำพูด\" ");?>3. คำสั่ง printf เป็นคำสั่งที่สามารถจัดรูปแบบข้อความได้ คล้ายภาษา C ตัวอย่างเช่น (ex04_04.php)<?Printf ("20x30=%d" , 20*30); //แทนค่า d ด้วย 20x30$a=rand(1,10); //สุ่มเลขระหว่าง 1 ถึง10$b=rand(1,20); //สุ่มเลขระหว่าง 1 ถึง20$c=$a+$b; //ตัวแปร c เท่ากับ ตัวแปร a บวกด้วยตัวแปร bPrintf("<h1>%d+%d =%d</h1>",$a,$b,$c); //แสดงผลค่าตัวแปร a b และc ตามลำดับ?>ในภาษา PHP มีรหัส Escape แทรกลงในคำสั่งแสดงผลกับเครื่องหมายบางประเภทดังนี้รหัส Escape ที่ควรทราบ %d หมายถึงตัวเลข %O หมายถึงแสดงผลเป็นเลขฐาน 8 %C ให้แสดงผลเป็นอักษร%S ให้แสดงผลเป็นข้อความ%f ให้แสดงผลเป็นจุดทศนิยมตัวแปรในภาษา PHPการเขียนโปรแกรมภาษาคอมพิวเตอร์ระดับสูง องค์ประกอบสำคัญคือ ตัวแปร (variable) ตัวแปรในภาษา PHP เริ่มต้นด้วยเครื่องหมาย dollar ($) โดยไม่ต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติ(ex04_05.php)<?$mystring = "สวัสดีครับ"; // กำหนดค่าตัวแปรเป็นข้อความ$myinteger = 1031; // คำหนดค่าตัวแปรเป็นเลขจำนวนเต็ม$myfloat = 3.14; // กำหนดค่าตัวแปรเป็นเลขทศนิยมprint ("$mystring<br></n>"); // ใช้คำสั่ง print แสดงผลตัวแปรprint ("$myinteger<br></n>"); // ใช้คำสั่ง print ส่วนแสดงผลตัวแปรprint ("$myfloat<br></n>"); // ใช้คำสั่ง print ส่วนแสดงผลตัวแปร?>เครื่องหมาย // เป็นรูปแบบหนึ่งของการเขียนหมายเหตุ (comment) เพื่อแทรกข้อความที่ไม่ต้องการให้มีการแสดงผล โปรแกรมภาษาเมื่อเจอคำสั่งเหล่านี้ จะมองข้ามข้อความหลังเครื่องหมายนี้ภายในบรรทัดนั้นๆ ซึ่งมีรูปแบบอื่นอีกเช่น /*ข้อความ….*/ ซึ่งหมายเหตุลักษณะนี้สามารถคร่อมข้อความได้หลายบรรทัด เป็นสิ่งที่มีประโยชน์อย่างมากในการจดจำคำสั่งหรือตัวแปรที่ผู้เขียนโปรแกรมได้กำหนดไว้เพื่อง่ายในการแก้ไขหรือปรับปรุงดัดแปลง ตัวแปรอาจเป็นข้อความ (String) จำนวนเต็ม (Integer) ทศนิยม (float), อะเรย์ ฯลฯ ดังตัวอย่าง (ex04_06.php)<?
$mystring = "ฝึกอบรมเขียนโปรแกรมด้วยภาษา PHP "; //ตัวแปรข้อความ
$myinteger = 16200087; //ตัวแปรซึ่งเป็นเลขจำนวนเต็ม
$myfloat = 3.14; //ตัวแปรซึ่งเป็นเลขทศนิยม
echo "$mystring<BR>\n"; //แสดงผลตัวแปรซึ่งเป็นข้อความ
echo "$myinteger<BR>\n"; //แสดงผลตัวแปรเลขจำนวนเต็ม
echo "$myfloat<BR>\n"; // แสดงผลตัวแปรเลขทศนิยม
?>
รหัส Escape ภาษา PHP ได้นำเอารหัส Escape แทรกลงไปในคำสั่งเพื่อแสดงผลสัญลักษณ์บางประเภท (สัญลักษณ์เหล่านี้ส่วนใหญ่โปรแกรม PHPได้นำไปใช้ทำหน้าที่พิเศษเป็นอย่างอื่นแล้ว) เช่น \’ เครื่องหมาย ’ (Single Quote)\” เครื่องหมาย ” (Double Quote)\ \ เครื่องหมาย \\ $ เครื่องหมาย $\ n ขึ้นบรรทัดใหม่\ t เว้นช่องว่าง 1 tab (ประมาณ 6 ตัวอักษร)\ r Carriage Return โปรดสังเกตการใช้ Escape คีย์ จากตัวอย่าง (ex04_07.php)<?Print "คำนวนค่า : <br>\n";printf( "5x40=%d <br> \n" , 5*40 );printf( "7/2=%d <br> \n" , 7/2 );printf( "7/2=%f <br> \n" , 7/2 );?>หลักการทำงานของไฟล์ PHP คือการที่เครื่องให้บริการ (Server) ประมวลผลภาษา PHP จนได้ผลลัพธ์ในรูปแบบ HTML จึงส่งผลลัพธ์ในรูปแบบ HTML นั้น ไปแสดงผลที่บราวเซอร์ ดังนั้นภายในภาษา PHP อาจแทรก Java Script ด้วยก็ได้ (ex04_08.php)<?print( "<script language='JavaScript'> alert( 'สวัสดีครับ' ); </script> ");//ใช้ JavaScript แทรกใน PHPprint ("<center><h1>");print( "คลิกที่ <a href='http://www.chanmedia.com'>แนะนำการพัฒนาสื่อ</a>");//ใช้ single quote ใน double quoteprint ("</center></h1>");?> เมื่อเราใช้โปรแกรมจะพบกับไดอะล็อกข้อความว่า สวัสดีครับซึ่งทำงานโดย JavaScript นั่นเอง จากนั้นก็จะพบกับ Link โดยเป็น Link ที่แสดงผลเป็นขีดเส้นใต้ เมื่อนำเม้าส์วางเหนือข้อความ (On RollOver) ซึ่งเป็นผลมาจากรหัสที่อยู่ระหว่างแท็ก <style> นั่นเองชนิดข้อมูลและตัวแปรใน PHPในภาษา PHP ตัวแปรใน PHP มีทั้งตัวแปรแบบสเกล่าร์ และตัวแปรอะเรย์ 1. ตัวแปรสเกล่าร์ อาจแบ่งได้ดังนี้ 1.1 ตัวเลข (Number) 1.2 ทศนิยม (Double หรือ Float)1.3 ตัวอักษร หรือ ข้อความ (String)ตัวแปรแบบสเกลล่าร์ จะสามารถเก็บค่าได้ทั้ง ตัวเลข, ทศนิยม และข้อความ โดยไม่ต้องระบุชนิดตัวแปร และตัวแปร 1 ตัวสามารถเก็บค่าได้เพียงค่าเดียวเท่านั้น สัญลักษณ์ของตัวแปรแบบ PHP เราจะใช้เครื่องหมาย $ (Dollar sign) คล้ายกับภาษา Perl การตั้งชื่อตัวแปรนั้น จะใช้หลักการในการตั้งชื่อแบบมาตรฐานในภาษาทั่ว ๆ ไป คือ ไม่มีช่องว่าง, ไม่มีเครื่องหมายใด ๆ ยกเว้นตัว ( _ ) และจะต้องไม่ซ้ำกับคำสงวนใน PHP นอกจากนี้ ในการตั้งชื่อจะต้องไม่มีตัวเลขมาก่อนตัวอักษรนั้นเอง โปรดสังเกตตัวอย่าง (ex04_09.php)<?$a=50; //กำหนด $a มีค่าเท่ากับ 50$b=60; //กำหนด $b มีค่าเท่ากับ 60$c=$a+$b; //กำหนด $c มีค่าเท่ากับ $a บวกด้วย $bprintf( "<h1>%d+%d = %d</h1>" , $a , $b , $c );$d= "ตัวแปรข้อความ";print ("$d <br></n>");echo "แสดงผลตัวแปร" ,$d, "อีกแบบหนึ่ง<br></n>";//โปรดสังเกตว่า ระยะนอกเครื่องหมายคำพูดไม่มีผลต่อการเแสดงผล$a= "กำหนดค่าตัวแปรใหม่";print ("การแสดงผลค่าของการ $a");//เราสามารถกำหนดค่าให้กับตัวแปรใหม่ได้โดยไม่ต้องคำนึงถึงชนิดตัวแปร?> ค่าค่งที่ใน PHP ค่าคงที่ก็คือ ตัวแปรประเภทหนึ่ง การประกาศค่าคงที่ใน PHP ทำได้โดยใช้คำสั่ง define (เหมือนกับภาษา C) โปรดสังเกตจากตัวอย่าง (ex04_10.php)<?define( "MYNAME" , "นายองอาจ" );define( "PROGRAMER" , "นายสรายุทธ์" );define( "mycolor" , "blue" );$a =10;?><?print "A= $a<br></n>";echo "<font color=" , mycolor , ">" ;echo "กระผมชื่อ " , MYNAME , "<br>";echo("ผู้เขียนโปรแกรม" . PROGRAMER . "<br>");echo "</font>";?> ข้อควรสังเกตภายในเครื่องหมายวงเล็บ ภายใต้คำสั่ง echo (“…”) ใช้เครื่องหมาย . แทน , ตัวแปรแถวลำดับ (Array)เป็นชนิดที่เก็บค่าตั้งแต่ 1 ค่าขึ้นไป ไว้ในชื่อเดียวกัน เพื่อให้ง่ายในการจดจำและนำไปใช้งาน โดยมี indexเป็นตัวระบุตำแหน่งของแต่ละข้อมูลที่อยู่ภายใน โดยข้อมูลแต่ละค่าเรียกว่า Value ตัวอย่างเช่น ex04_11.php<?php//สร้างตัวแปรชนิดแถวลำดับชื่อ myArr ซึ่งเป็นอาร์เรย์ 4 มิติ มี 4 สมาชิก//จะกล่าวถึงการสร้างตัวแปรแถวลำดับในภายหลัง$myArr = array("การเขียนโปรแกรม", "ภาษา", "PHP", "ฐานข้อมูล MySQL");//ใช้โอเปอร์เรเตอร์ . (จุด) ในการต่อสตริงecho $myArr[0] . "<br>"; //แสดงค่าของสมาชิกตัวแรกของอาร์เรย์echo $myArr[1] . "<br>"; //แสดงค่าของสมาชิกตัวที่ 2 ของอาร์เรย์echo $myArr[2] . "<br>"; //แสดงค่าของสมาชิกตัวที่ 3 ของอาร์เรย์echo $myArr[3] . "<br>"; //แสดงค่าของสมาชิกตัวที่ 4 ของอาร์เรย์?>ตัวแปรแถวลำดับสามารถกำหนดให้ index เป็นค่าอย่างอื่นนอกจากตัวเลขก็ได้ ซึ่งเราเรียกว่าแถวลำดับแบบคู่ โดยตำแหน่งของข้อมูลเรียน key และค่าของข้อมูลเรียก value ในการแสดงผลจะเรียกชื่อตัวแปรและตามด้วย key ภายใน[] ดังตัวอย่างไฟล์ ex04_12.php<?$a = array('name' => 'ส้ม', 'color' => 'เหลือง', 'shape' => 'กลม', 'taste' => 'หวาน');//key คือ name , value คือ ส้ม key คือ color , value คือ เหลือง ตามลำดับecho "ชื่อผลไม้: " . $a['name'] . "<br>";echo "สี: " . $a['color'] . "<br>";echo "รูปร่าง: " . $a['shape'] . "<br>";echo "รสชาติ: " . $a['taste'] . "<br>";?>เราสามารถนำเอาตัวแปรแถวลำดับไปใช้ประโยชน์ในการประยุกต์งานบนเครือข่ายอย่างกว้างขวาง ทั้งทางตรงและทางอ้อม