- ภาษา PHP คืออะไร
PHP คือภาษา script อย่างหนึ่งที่เป็น server-side script ซึ่งจะทำงานในฝั่ง server แล้วส่งการแสดงผลมายัง browser ของตัว Client และนอกจากนี้ มันยังเป็น script ที่ embed บน HTML อีกด้วย
PHP เป็นภาษาจำพวก script language คำสั่งต่าง ๆ จะเก็บอยู่ในไฟล์ที่เรียกว่า สคริปต์ (script) และเวลาใช้งานต้องอาศัยตัวแปรชุดคำสั่ง ตัวอย่างของภาษาสคริปต์เช่น JavaScript, Perl เป็นต้น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่น ๆ คือ PHP ได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถสอดแทรกหรือแก้ไขเนื้อหาโดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHPเป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded. Scripting language เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพมากขึ้น
PHP ได้รับการเผยแพร่เป็นครั้งแรกในปี ค.ศ. 1994 โดยคุณ Rasmus Lerdorf ต่อมาได้มีนักโปรแกรมเมอร์เข้ามาช่วยในการพัฒนาต่อมาตามลำดับ เป็นเวอร์ชั่นต่าง ๆ จนกรทั่งถึงเวอร์ชั่นล่าสุดซึ่งเป็นเวอร์ชั่น 5 นักพัฒนาสำคัญของเวอร์ชั่น 4 และ เวอร์ชั่น 5 คือคุณ Zeev Suraski
และคุณ Andi Gutmans ในขณะนี้มีเว็บเซิฟเวอร์ประมาณ 16 ล้านโดเมน (domains) ที่ใช้ PHP เราสามารถตรวจสอบจำนวนของ domains ที่ใช้ PHP ได้ที่ http://www.php.net/usage.php
ในตอนแรก PHP ย่อมาจาก Personal Home Page แต่ต่อมาได้เปลี่ยนชื่อให้ตรงตามกฎเกณฑ์ของ GNU ชื่อในปัจจุบันของ PHP นั้นย่อมาจาก Hypertext Preprocessor รายละเอียดต่าง ๆ ของ PHP เราสามารถเข้าไปต้นหาเพิ่มเติมได้ที่เว็บไซต์ของ PHP ซึ่งคือ http://www.php.net
- ทำไมภาษา PHP น่าสนใจและน่าใช้
ภาษาอื่นที่ทำหน้าที่คล้าย ๆ กับภาษา PHP คือ Perl, Microsoft Active Server Pages (ASP), Java Server Page (JSP), และ Allaire ColdFusion
ถ้าเปรียบเทียบภาษา PHP กับ ภาษาอื่น ๆ เหล่านี้เราจะพบว่าภาษา PHP มีข้อได้เปรียบหลายอย่างดังต่อไปนี้
- มีสมรรถนะสูง: สามารถรองรับการใช้หลายล้าน hits ในแต่ละวัน
- สามารถติดต่อกับหลายประเภทของฐานข้อมูลอย่างเช่น MySQL, PostgreSQL, mSQL, Oracle, Informix, Sybase และสามารถใช้ Open Database Connectivity Standard (ODBC) เพื่อติดต่อกับผลิตภัณฑ์ฐานข้อมูลของ Microsoft
- ไม่ต้องเสียค่าใช้จ่ายในการใช้: เราสามารถดาวน์โหล PHP ได้จาก http://www.php.net โดยไม่ต้องเสียค่าใช้จ่ายใด ๆ
- เรียนรู้และใช้ง่าย โดยเฉพาะถ้าเรารู้ภาษา C, C++, Perl, และ Java อยู่แล้ว
- สามารถใช้ PHP ได้บนหลายระบบปฏิบัติการโดยที่ไม่ต้องเปลี่ยนโปรแกรม
- การติดตั้งภาษา PHP
3.1 Download AppServ v 2.5.9 จาก http://prdownloads.sourceforge.net/appserv/appserv-win32-2.5.9.exe?download
3.2 ทำการติดตั้ง AppServ โดยการกดปุ่ม Next ไปเรื่อย ๆ จนกระทั่งการติดตั้งเสร็จเรียบร้อย
3.3 ทดสอบการติดตั้งโดยการเปิดเว็บบราวเซอร์และให้ระบุ URL ที่ http://localhost
หลังจากที่เราติดตั้งเสร็จเรียบร้อยแล้ว จะพบว่ามีไดเรกทอรี่ AppServ ซึ่งเป็นไดเรกทอรี่ที่มีไดเรกทอรี่ www อยู่ข้างในไฟล์ PHP ที่เราสร้างเราควรเก็บไว้ใต้ไดเรกทอรี่ c:/AppServ/www
- ความรู้เบื้องต้นเกี่ยวกับภาษา PHP
4.1 การแทรกคำสั่งภาษา PHP ในเอกสาร HTML
เราสามารถแทรกคำสั่งภาษา PHP ได้โดยการใช้ PHP tags ซึ่งมีไว้เพื่อเป็นการบ่งบอกให้รู้ส่วนที่เป็นคำสั่งของภาษา PHP
ที่อยู่ในเอกสาร HTML การใช้ PHP tags นั้นสามารถทำได้หลายรูปแบบดังต่อไปนี้
- <?php … ?> (XML style)
- <? … ?> (short style)
- <script language=`php’>…</script> (Script style)
- <% … %> (ASP style)
แบบที่ควรใช้คือ XML style เนื่องจากสามารถรันได้กับทุก Server อีกทั้งสอดคล้องกับไวยากรณ์ของภาษา XML
เราสามารถวางคำสั่งในภาษา PHP ไว้ภายในเอกสาร HTML ตามที่ต้องการได้ โดยที่ PHP tags อาจจะ วางอยู่สลับกับ HTML tags ดังตัวอย่างเช่น
Example1: sample.php
<html>
<head>
<title>My Homepage</title>
</head>
<body>
<h1><?php echo “Hello World!”; ?></h1>
</body>
</html>
4.2 รูปแบบภาษา PHP และคำสั่ง
4.2.1 Comments
Comments ในภาษา PHP เอารูปแบบมาจาก comments ในภาษา C++ และภาษา XML
Comments มีไว้เพื่อเป็น บันทึกช่วยให้ผู้เขียนหรือผู้อ่านโปรแกรมเข้าใจโปรแกรม ตัวอย่างของ comments มีดังนี้
<!– file: hello.php (comments in xml style) –>
// this style of comment is suitable for a short comment that is not over one line
/*
* to write comments more than one line, you may want to use this style
*/
4.2.2 Variables (ตัวเแปร)
Variables หรือ ตัวแปร คือ สัญลักษณ์ที่ใช้แทนข้อมูล Literals คือข้อมูลซึ่งสามารถเป็นค่าของตัวแปร $salary เป็นตัวแปร 20,000 เป็น Literal วิธีการกำหนดตัวแปรในภาษา PHP จะต้องขึ้นต้นด้วยเครื่องหมาย $ แล้วตามด้วชื่อของตัวแปร ตัวอย่างการใช้ตัวแปร
Example 2: variable.php
<?php
$salary = 20000;
echo “Your salary is $salary Bahts.”;
?>
ผลลัพธ์ที่ได้จากการใช้โปรแกรมข้างบนนี้
ถ้าหากว่าคุณไปที่ “View” และ คลิกที่ “Source” คุณจะพบว่าเนื้อหาของ file “variable.php” เป็น “Your salary is 20000 Bahts” ไม่มีคำสั่งของภาษา PHP ซึ่ง หมายความว่า Server ได้รันและแปลคำสั่งของคุณเรียบร้อยแล้ว ไม่ว่า Browsers ใดก็จะ เห็นเนื้อหาของ file นี้เหมือนกันหมด
ตัวแปรในภาษา PHP นั้นมีอยู่หลายชนิดดังต่อไปนี้
- String
- Integer, Long Integer
- Float, Real, Double
- Array
- Object
ตัวอย่างการใช้ตัวแปรชนิด String
Example 3: string.php
<?php
$prefix=”Dr.”;
$firstname=”Prawase”;
$surname=”Wasi”;
echo $prefix.$firstname.” “.$surname.”<br/>”;
echo “$prefix$firstname $surname<br/>”;
?>
ผลลัพธ์ที่ได้จากการใช้โปรแกรมข้างบนนี้
จากตัวอย่างข้างบนเราเรียนรู้ว่าเราสามารถเอาค่าของตัวแปรชนิด String มาติดต่อกันโดยใช้ “.” Operator. นอกจากนี้เราพบว่าค่าของตัวแปรจะถูกประเมินถ้าหากว่าเราเอาตัวแปรใส่ ในเครื่องหมายคำพูด (“ ….”) ถ้าหากว่าเราต้องการพิมพ์ String “$firstname” ออกมาโดยที่ไม่ได้ต้องการให้ PHP เข้าใจว่านั่นคือตัวแปรและพิมพ์ค่าของตัวแปรออกมา เราต้องใช้เครื่องหมาย ‘…’
PHP อนุญาติให้เราใช้ References. Reference operator คือ & ซึ่งจะใช้กับเครื่องหมาย = เพื่อจะ copy address ของ variables จะขอยกตัวอย่างต่อไปนี้เพื่อให้เข้าใจมากขึ้น
$a = 5;
$b = $a;
$a = 7; // $b will still be 5
$a = 5;
$b = &$a;
$a = 7; // both $a and $b are now both 7
4.2.3 Operators
Operators ที่เราสามารถใช้ได้ในภาษา PHP มีดังนี้
- a) Arithmetic operators: +, -, *, /, %
- b) Combined assignment operators: +=, -=, *=, /=, %=, .=
- c) Pre- and post- increment and decrement: a++, ++a, a–, –a;
- d) Comparison operators: == (equals), === (identical), != (not equal), <> (not equal), <, >, <=, >=
Operator === จะ return ค่า true ก็ต่อเมื่อ ตัวแปรสองตัวแปรมีค่าเท่ากันและเป็นตัวแปรที่อยู่ในชนิดเดียวกัน ตัวอย่างต่อไปนี้จะทำให้เห็นข้อแตกต่างระหว่าง operator “==” และ operator “===”
Example 4: equal_identical.php
<?php
$a = 5.0;
$b = 5;
if ($a == $b)
echo “$a == $b<br/>”;
if ($a === $b)
echo “$a === $b<br/>”;
else
echo “$a not === $b<br/>”;
?>
ซึ่งจะได้ผลลัพธ์ดังนี้
- e) Logical operators: !, &&, ||, and, or and และ or operators ให้ผลเช่นเดียวกับ && และ || แต่ && และ || จะถูกประเมินผลก่อน
- f) Bitwise operators: & (AND) , | (OR) , ~ (NOT) , ^ (XOR), << (left shift) , >> (right shift)
Example 5: bit_operations.php
<?php
$a = 9; // 10012
$b = 3; // 00112
echo ‘$a’.” is $a and “.’$b’.” is $b<br/>”;
$c = $a | $b; // 10012 | 00112 = 10112 à 11
echo ‘$a | $b =’.” $c<br/>”;
$d = $a & $b; // 10012 | 00112 = 00012 à 1
echo ‘$a & $b =’.” $d<br/>”;
$e = ~$a; // ~(010012) = 10110 à -10
echo ‘~$a =’.” $e<br/>”;
$f = $a ^ $b; // 10012 | 00112 = 00012 à 10102 = 10
echo ‘$a ^ $b =’.” $f<br/>”;
$g = $a << 1; // 10012 << 1 = 100102 à 18
echo ‘$a << 1 =’.” $g<br/>”;
$h = $a >> 1; // 10012 >> 1 = 01002 à 4
echo ‘$a >> 1 =’.” $h<br/>”;
?>
ผลลัพธ์มีดังนี้
4.2.4 คำสั่ง if/else
คำสั่ง if/else เป็นคำสั่งที่เลือกการทำงานตามเงื่อนไข รูปแบบของคำสั่งมีดังต่อไปนี้
- if (เงื่อนไข) { คำสั่ง }
- if (เงื่อนไข) { คำสั่ง } else { คำสั่ง }
- if (เงื่อนไข) { คำสั่ง } elseif { คำสั่ง } else { คำสั่ง }
ตัวอย่างของการใช้คำสั่ง if/else มีดังต่อไปนี้
Example 6: ifelse.php
<?php
$score = 88;
$grade = ‘F’;
if ($score > 60 && $score <= 70)
{
$grade = ‘D’;
}
elseif ($score > 70 && $score <= 80)
{
$grade = ‘C’;
}
elseif ($score > 80 && $score <= 90)
{
$grade = ‘B’;
}
else
{
$grade = ‘A’;
}
echo “With your score = $score, your grade = $grade<br/>”;
?>
ผลลัพธ์ของโปรแกรมข้างบนคือ
4.2.5 คำสั่ง switch/case
คำสั่ง switch/case เป็นคำสั่งที่เลือกการทำงานตามเงื่อนไขเช่นเดียวกับคำสั่ง if/else แต่ว่า นิพจน์ของ if เป็น expression อย่างเช่น (a == 2) หรือ (a*b > 5) ได้ ในขณะที่ นิพจน์ของ case ต้องเป็นค่าคงที่ที่เป็นจำนวนเต็มเท่านั่น (อย่างเช่น 2, ‘a’, 2.7 แต่ไม่ใช่ 2.5) และเช็คเฉพาะว่าตัวแปรมีค่าเท่ากับจำนวนเต็มที่ให้มาหรือไม่ (เช่นไม่สามารถเช็คได้ว่า a > 2 หรือไม่) อีกประการหนึ่ง คำสั่งใน switch ถ้าหากว่าถูกกระทำแล้วจะหยุดก็ต่อเมื่อเจอ break
Example 7: switchcase.php
<?php
$score = 70;
$grade = ‘F’;
echo “Your score is $score<br/>”;
switch ($score)
{
case 60:
echo “Your grade is D<br/>”;
case 70:
echo “Your grade is C<br/>”;
case 80:
echo “Your grade is B<br/>”;
break;
case 90:
echo “Your grade is A<br/>”;
}
?>
ผลลัพธ์ที่ได้ของโปรแกรมข้างบนนี้คือ
4.2.6 คำสั่ง while
คำสั่ง while เป็นคำสั่งวนลูปตามเงื่อนไข รูปแบบของคำสั่งคือ
while (เงื่อนไข) { คำสั่ง }
Example 8: while.php
<?php
$i = 1;
while ($i <= 10)
{
echo “$i<br/>”;
$i++;
}
?>
ผลลัพธ์ที่ได้ก็คือ
4.2.7 คำสั่ง do/while
คำสั่ง do/while เป็นคำสั่งวนลูป ทำงานตามเงื่อนไข รูปแบบของคำสั่งคือ
do { คำสั่ง } while (เงื่อนไข)
Example 9: dowhile.php
<?php
$i = 1;
do {
echo “$i<br/>”;
$i++;
} while ($i <= 10)
?>
ผลลัพธ์ที่ได้จะเป็นเช่นเดียวกับที่ได้จากการรันโปรแกรม while.php
4.2.8 คำสั่ง for
เป็นคำสั่งที่เลือกการทำงานตามเงื่อนไข รูปแบบของคำสั่งคือ
for (ค่าเริ่มต้น; ค่าสิ้นสุด; เงื่อนไข) { คำสั่ง }
Example 10: for.php
<?php
for ($i = 1; $i <= 10; $i++)
{
echo “$i<br/>”;
}
?>
ผลลัพธ์ที่ได้จะเป็นเช่นเดียวกับที่ได้จากการรันโปรแกรม while.php และ dowhile.php
4.2.9 การกำหนดตัวแปรที่มีค่าคงที่
การกำหนดตัวแปรที่มีค่าคงที่ใน PHP ทำได้โดยการใช้คำสั่ง define ดังเช่น
define(‘MANGOPRICE’, 20);
ตัวแปรเหล่านี้ควรจะเป็นตัวพิมพ์ใหญ่หมดและเวลาอ้างอิงถึงไม่ต้องมี $ นำหน้า
การทดลอง
- เขียนโปรแกรม orderform.html ดังต่อไปนี้
<html>
<head>
<title>Malee’s Fruits Shop</title>
</head>
<body>
<h1>Malee’s Fruits Shop</h1>
<form action=”processorder.php” method=”post”>
<table border=”0″>
<tr bgcolor=”#cccccc”>
<td width=”150″>Item</td>
<td width=”15″>Quantity</td>
</tr>
<tr>
<td>Mangoes</td>
<td align=”center”>
<input type=”text”
name=”mangoqty” size=”3″
maxlength=”3″>
</td>
</tr>
<tr>
<td>Pineapples</td>
<td align=”center”>
<input type=”text”
name=”pineappleqty” size=”3″
maxlength=”3″>
</td>
</tr>
<tr>
<td colspan=”2″ align=”center”>
<input type=”submit” value=”Submit Order”></td>
</tr>
</table>
</form>
</body>
</html>
จากการเขียนโปรแกรม HTML ข้างบนนี้คุณควรจะได้
- เขียน PHP codeใน file “processorder.php” เพื่อที่จะได้ผลลัพธ์ดังต่อไปนี้ โดยที่คุณสามารถจะรู้จำนวน mangoes จาก variable $HTTP_POST_VARS[‘mangoqty’] และรู้จำนวน pineapples จาก variable $HTTP_POST_VARS[‘pineappleqty’] ผลของการรันโปรแกรมที่คุณควรจะได้คือ
- เขียน PHP codes โดยใช้การกำหนดตัวแปรทั้งที่มีค่าไม่คงที่และค่าคงที่เพื่อจะได้ผลดังข้างล่างนี้ โดยที่กำหนดว่ามะม่วงลูกละ 10 บาท และสัปปะรดลูกละ 35 บาท คุณจะต้องกำหนดราคาของผลไม้ในรูปของตัวแปรที่มีค่าคงที่
- เขียน PHP codes เพิ่มเติมจากข้อ 3 เพื่อที่จะบอกว่าลูกค้าเป็นลูกค้าชั้นเยี่ยม (excellent) ถ้าหากว่าเขาซื้อผลไม้มากกว่า 50 Bahts ลูกค้าเป็นลูกค้าชั้นดีมาก (very good) ถ้าหากเขาซื้อผลไม้มากกว่า 40 Bahts.ลูกค้าเป็นลูกค้าชั้นดี (good) ถ้าหากเขาซื้อผลไม้มากกว่า 30 Bahts แต่ไม่ว่าลูกค้าจะซื้อสินค้าจำนวนเท่าใด คุณก็เขียนขอบคุณเขา
- เขียน PHP codes เพิ่มเติมจากข้อ 4 เพื่อที่จะพิมพ์ดาว 5 ดวงสำหรับลูกค้าที่เป็นลูกค้าชั้นเยี่ยม (excellent) ดาว 4 ดวงสำหรับลูกค้าที่เป็นลูกค้าชั้นดีมาก (very good) ดาว 3 ดวงสำหรับลูกค้าที่เป็นลูกค้าชั้นดี(good) โดยที่การพิมพ์ดาวจะต้องใช้ “for” หรือ “while” หรือ “do … while” loops