วันอังคารที่ 21 เมษายน พ.ศ. 2558

         ในช่วงแรกภาษาที่นิยมใช้ในการทำงานบนระบบ Network คือ HTML (Hypertext Markup Lanuage) แต่ภาษา HTML เป็น Static Language ก็คือ ภาษาที่ใช้สร้างข้อมูลประเภทตัวอักษร ภาพ หรือ Object อื่นๆ ที่ไม่สามารถเปลี่ยนแปลงได้ ด้วยตัวของมันเอง หรือเรียกง่ายๆ ว่าข้อมูลที่คงที่นั่นเอง ก็ทำให้ไม่ยืดหยุ่น ต่อมาความต้องการของมนุษย์ ไม่มีวันเพียงพอ จึงได้มีการพัฒนา ภาษาที่เป็น Dynamic Lanuage ขึ้นมา ก็คือ ภาษาที่มีข้อมูลถูกเปลี่ยนแปลง Auto ตามเงื่อนไขต่างๆ ที่ผู้เขียนกำหนดไว้ มีการ ประกาศตัวแปรได้ ข้อมูลที่เปลี่ยนแปลงก็เปลี่ยนแปลงตามตัวแปร นี่ เป็นที่มาของ ภาษา PHP CGI ASP เป็นต้น โดยเฉพาะ ภาษาประเภท Scripts ที่สามารถติดต่อกับผู้ใช้ได้ และ หนึ่งในภาษาเหล่านั้นก็คือ PHP ซึ่งเป็นภาษาที่ไดรับความนิยมอย่างมากในปัจจุบัน ถูกสร้างขึ้น เมือ ปี 1994 ก่อน Windows 95 ปีเดียวเอง โดยนาย Rasmus Lerdorf
         PHP เป็นภาษาจำพวก scripting language คำสั่งต่างๆจะเก็บอยู่ในไฟล์ที่เรียกว่าสคริปต์ (script) และเวลาใช้งานต้องอาศัยตัวแปลชุดคำสั่ง ตัวอย่างของภาษาสคริปก็เช่น JavaScript, Perl เป็นต้น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่นๆ คือ PHP ได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถ สอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHP เป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded scripting language เป็นเครื่องมือที่สำคัญชนิดหนึ่ง ที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น
        ถ้าใครรู้จัก Server Side Include (SSI) ก็จะสามารถเข้าใจการทำงานของ PHP ได้ไม่ยาก สมมุติว่า เราต้องการจะแสดงวันเวลาปัจจุบันที่ผู้เข้ามาเยี่ยมชมเว็บไซด์ในขณะนั้น ในตำแหน่ง ใดตำแหน่งหนึ่งภายในเอกสาร HTML ที่เราต้องการ อาจจะใช้คำสั่งในรูปแบบนี้ เช่น <!--#exec cgi="date.pl"--> ไว้ในเอกสาร HTML เมื่อ SSI ของ web server มาพบคำสั่งนี้ ก็จะกระทำคำสั่ง date.pl ซึ่งในกรณีนิ้ เป็นสคริปต์ที่เขียนด้วยภาษา perl สำหรับอ่านเวลาจากเครื่องคอมพิวเตอร์ แล้วใส่ค่าเวลาเป็นเอาพุท (output) และแทนที่คำสั่งดังกล่าว ลงในเอกสาร HTML โดยอัตโนมัติ ก่อนที่จะส่งไปยังผู้อ่านอีกทีหนึ่ง
        อาจจะกล่าวได้ว่า PHP ได้รับการพัฒนาขึ้นมา เพื่อแทนที่ SSI รูปแบบเดิมๆ โดยให้มีความสามารถ และมีส่วนเชื่อมต่อกับเครื่องมือชนิดอื่นมากขึ้น เช่น ติดต่อกับคลังข้อมูลหรือ database เป็นต้น
        PHP ได้รับการเผยแพร่เป็นครั้งแรกในปีค.ศ.1994 จากนั้นก็มีการพัฒนาต่อมาตามลำดับ เป็นเวอร์ชั่น 1 ในปี 1995 เวอร์ชั่น 2 (ตอนนั้นใช้ชื่อว่า PHP/FI) ในช่วงระหว่าง 1995-1997 และเวอร์ชั่น 3 ช่วง 1997 ถึง 1999 จนถึงเวอร์ชั่น 4 ในปัจจุบัน
        PHP เป็นผลงานที่เติบโตมาจากกลุ่มของนักพัฒนาในเชิงเปิดเผยรหัสต้นฉบับ หรือ OpenSource ดังนั้น PHP จึงมีการพัฒนาไปอย่างรวดเร็ว และแพร่หลายโดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับ Apache Webserver ระบบปฏิบัติอย่างเช่น Linux หรือ FreeBSD เป็นต้น ในปัจจุบัน PHP สามารถใช้ร่วมกับ Web Server หลายๆตัวบนระบบปฏิบัติการอย่างเช่น Windows 95/98/NT เป็นต้น 


         เพื่อเป็นการบ่งบอกให้รู้ว่า ส่วนใดเป็นคำสั่ง PHP ที่อยู่ภายในเอกสาร HTML จึงได้มีการกำหนดสัญลักษณ์ไว้ดังนี้ ซึ่งสามารถทำได้หลายรูปแบบ เช่น
TAG
STLY
<? ... ?>
(SGML style)
<?php ... ?>
(XML style)
<script language="php"> ... </script>
(JavaScript style)
<% ... %>
(ASP style)


         ที่นิยมก็คือแบบแรก โดยเริ่มต้นด้วย <? และจบด้วย ?> และตรงกลางจะเป็นคำสั่งในภาษา PHP เราสามารถวางคำสั่ง PHP ไว้ภายในเอกสาร HTML ตามที่ต้องการได้ อาจจะสลับกับ Tag ของภาษา HTML ก็ได้

คำสั่ง Echo หรือ Print
          ในภาษา PHP นั้งคำสั่งในการแสดงผลมี 2 คำสั่ง คือ echo หรือ print โดยทั้งสองคำสั่งมีรูปแบบเหมือนกันและหลังจากจบคำสั่งจะต้องปิดท้ายด้วย เซมิโคลอน (;)
เช่น
echo “ข้อความ”;

print “ข้อความ”;

         สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับในภาษา Perl คือเริ่มต้นด้วยเครื่องหมาย dollar ($) โดยเราไม่จำเป็นต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใด ในช่วงเวลานั้นๆ เช่น ข้อความ จำนวนเต็ม จำนวนที่มีเลขจุดทศนิยมตรรก เป็นต้น
Integer
จำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก
Float
เก็บจำนวนจริงทั้งบวกและลบ ทั้งมีทศนิยม และไม่มีทศนิยม
String
เก็บจำนวนตัวเลข และ ข้อความ
Array
เก็บข้อมูลทเป็นชุด หรือ อาร์เรย์
Object
เก็บข้อมูลในลักษณะออปเจ็กต์เพื่อการเรียกใช้เป็น Class Object หรือ Function
Type juggling
เก็บข้อมูลในลักษณะเฉพราะหรือผู้ที่ใช้เพิ่มเข้าม

หลักการตั้งชื่อ ตัวแปร
          $ var-name =value;

ขอบเขตการตั้งชื่อตัวแปร
          - ขึ้นต้นด้วยเครื่งหมาย $ แล้วตามด้วยตัวอักษร A-Z,a-z
          - มีความยาวไม่เกิน 255 ตัวอักษร 
          - ห้ามมีจุดทศนิยม หรือช่องว่าง 
          - จะต้องไม่ตรงกับคำสงวน และควรตั้งชื่อ ให้มีความหมายใกล้เคียงกับ ค่าที่เก็บ 
          - ตัวอักษรเล็กหรือใหญ่จะเป็นตัวแปรต่างกัน 
          - ถ้าตั้งตัวแปรมาใหม่ แล้วทับตัวแปรเก่า ค่าของตัวแปรเก่าจะหายไป

การตรวจสอบชนิดของตัวแปร
          gettype( $var-name );


ตัวอย่างเช่น
<?
$a=1234;
echo gettype($a);
?>


Escaped characters \n newline
\n
newline
\r
carriage
\t
horizontal tab
\\
backslash
\$
dollar sign
\"
double-quote
%%
percent

PHP---โอเปอเรเตอร์
ในภาษา PHP มีโอเปอรเตอร์ด้วยกันทั้งหมด 7 ชนิดดังนี้
Arithmetic Operators
โอเปอเรเตอร์ทางคณิตศาสตร์
String Operators
โอเปอเรเตอร์เชิงข้อความ
Assignment Operators
โอเปอเรเตอร์กำหนดค่า
Bitwise Operators
โอเปอเรเตอร์เปรียบเทียบบิต
Logical Operators
โอเปอเรเตอร์เชิงตรรกศาสตร์
Comparision Operators
โอเปอเรเตอร์เปรียบเทียบ
Operator Precedence
โอเปอเรเตอร์เพิ่ม-ลดค่า

Arithmetic Operators โอเปอเรเตอร์ทางคณิตศาสตร์
ตัวอย่าง
ความหมาย
ผลลัพธ์
$a + $b
บวก
ผลบวกของ $a และ $b
$a - $b
ลบ
ผลลบของ $a และ $b
$a * $b
คูณ
ผลคูณของ $a และ $b
$a / $b
หาร
ผลหารของ $a และ $b
$a % $b
หารเอาเศษ
เศษจากการหารของ $a หารโดย $b

String Operators เป็นโอเปอเรเตอร์ที่ใช้กับข้อความซึ่งจะใช้ (.) เพียงโอเปอเรเตอร์เดียว
<?
          $a="PHP";
          $b="Programming";
          $c=$a.$b;
          echo"$c";
?>

Assignment Operators โอเปอเรเตอร์กำหนดค่า
          โอเปอเรเตอร์พื้นฐานคือ “=” คือคุณจะต้องคิดว่าค่าทางซ้ายมือของโอเปอเรเตอร์คือผลลัพธ์จาก คำสั่งที่กระทำทางขวามือ
$a = 3;
$a += 5; // $a = 8, มีความหมายว่า $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // $b = "Hello There!", เหมือนกับ $b = $b . "There!";

เครื่องหมาย
ความหมาย
รูปแบบ
ผลลัพธ์ถ้ากำหนดค่าให้ $a=2
=
กำหนดค่า
$a=1
1
+=
เพิ่มค่า
$a+=1
3
-=
ลบค่า
$a-=1
1
*=
คูณค่า
$a*=1
2
/=
หารค่า
$a/=1
2

Logical Operators โอเปอเรเตอร์เชิงตรรกศาสตร์
ตัวอย่าง
ความหมาย
ผลลัพธ์
$a and $b
And
จริงก็ต่อเมื่อ $a และ $b เป็นจริง
$a or $b
Or
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็จริง
$a xor $b
Or
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็นจริง , แต่จะไม่จริงถ้าทั้งสองไม่จริง.
! $a
Not
จริงถ้า $a ไม่จริง
$a && $b
And
จริงทั้ง $a และ $b เป็นจริง
$a || $b
Or
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็จริง

Comparison Operators โอเปอเรเตอร์เชิงเปรียบเทียบ
ตัวอย่าง
ความหมาย
ผลลัพธ์
$a == $b
เท่ากับ
จริงถ้า $a มีค่าเท่ากับ $b.
$a != $b
ไม่เท่ากับ
จริงถ้า $a มีค่าไม่เท่ากับ $b.
$a < $b
น้อยกว่า
จริงถ้า $a มีค่าน้อยกว่า $b.
$a > $b
มากกว่า
จริงถ้า $a มีค่ามากกว่า $b.
$a <= $b
น้อยกว่าหรือเท่ากับ
จริงถ้า $a มีค่าน้อยกว่าหรือเท่ากับ $b.
$a >= $b
มากกว่าหรือเท่ากับ
จริงถ้า $a มีค่ามากกว่าหรือเท่ากับ $b.

เงื่อนไขการตัดสินใจ เช่น if , else , switch
PHP if() กำหนดเงื่อนไขการทำงานในเมื่อเงื่อนไขเป็นจริง จะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริงเท่านั้น รูปแบบการเขียนคือ

Flow Chart IF ทางเดียว



if(เงื่อนไข) {
     สิ่งที่เราจะให้ทำเมื่อเข้าเงื่อนไข
}

PHP if..else() กำหนดเงื่อนไขที่เป็นจริงและเงื่อนไขที่เป็นเท็จ  เมื่อเงื่อนไขเป็นจริง จะทำงานในส่วน if แต่ถ้าเงื่อนไขเป็นเท็จจะทำงานในส่วน else
มีโครงสร้างดังนี้





if(เงื่อนไข){
คำสั่งที่จะทำ ถ้าตรงกับเงื่อนไข if
}
else {
คำสั่งที่จะทำ ถ้าไม่ตรงกับเงื่อนไข if
}

PHP if-elseif() กำหนดเงื่อนไขเป็นจริงได้หลายเงื่อนไขเพื่อเป็นทางเลือกในการตัดสินใจ การทำงาน 2 แบบแรก จะมีการเปรียบเทียบเงื่อนไขเพียงเงื่อนไขเดียว แต่ถ้าหากเราต้องการเปรียบเทียบหลายๆ เงื่อนไข โดยแต่ละเงื่อนไขจะทำงานไม่เหมือนกัน สามารถเขียนได้ดังนี้


<?php
    if (เงื่อนไข 1) {
        // ทำงานเมื่อเงื่อนไข 1 เป็นจริง
    }
    elseif (เงื่อนไข 2) {
        // ทำงานเมื่อเงื่อนไข 2 เป็นจริง
    }
    elseif (เงื่อนไข 3) {
        // ทำงานเมื่อเงื่อนไข 3 เป็นจริง
    }
    elseif (เงื่อนไข n) {
        // ทำงานเมื่อเงื่อนไข n เป็นจริง
    }
    else {
        // ทำงานเมื่อเงื่อไขข้างบนเป็นเท็จทั้งหมด
    }
?>


การใช้คำสั่ง Switch
          รูปแบบของ Switch Case มีรูปแบบการทำงานคล้ายกับ IF แบบหลายทาง สามารถกำหนดเงื่อนไข และทางเลือกที่เป็นจริงได้หลาย ๆ เงื่อนไข นั้นก็คือ เราจะใช้งาน Switch เป็นตัวกำหนดทิศทางการทำงานของโปรแกรมเรา โดยการกำหนดนั้นจะกำหนดจากค่า ค่าหนึ่ง ว่าเป็นค่าอะไร ถ้าเป็นค่านั้น แล้วจะทำอะไร

โครงสร้างของคำสั่ง switch
switch (สิ่งที่ต้องการตรวจสอบ){
case ค่าที่ 1 :
     คำสั่ง;
break;
case ค่าที่ 2 :
     คำสั่ง;
break;
case ค่าที่ 3 :
     คำสั่ง;
break;
default:
คำสั่ง กรณีไม่ตรงกับค่าใน case ต่างๆ
}

ภาพรวมของ switch case
          1. ชุดคำสั่งประกอบด้วย switch, case, break และ default
          2. ส่วนของคำสั่ง switch ใช้สำหรับการระบุเงื่อนไขการทำงาน
          3. ส่วนของคำสั่ง case ใช้สำหรับระบุขั้นตอนการดำเนินงาน
          4. ส่วนของคำสั่ง break ใช้สำหรับจบขั้นตอนการดำเนินงาน
          5. ส่วนของคำสั่ง default ใช้สำหรับกรณีที่ไม่เข้าเงื่อนไขใดๆ


คำสั่งวนลูปหรือการทำซ้ำ

          คำสั่งวนลูปหรือการทำซ้ำที่สามารถใช้งานได้ในภาษา PHP เหมือนกันกับภาษาซี คือคำสั่ง For , คำสั่ง while และคำสั่ง Do while ซึ่งมีรูปแบบการใช้งานดังนี้

คำสั่ง For

          ลักษณะการทำงานจะตรวจสอบเงื่อนไข พร้อมทั้งกำหนดค่าเริ่มต้น และการเปลี่ยนแปลงค่าเริ่มต้นไปพร้อมๆ กัน โดยตราบใดที่เงื่อนไขเป็นจริง ก็จะทำงานในคำสั่งภายใน for ต่อไปเรื่อยๆ จนกว่าเงื่อนไขนั้นเป็นเท็จ ถึงจะกระโดดออกจากลูป คำสั่งนี้เหมาะสำหรับการนับจำนวนจากมากไปหาน้อย หรือจากน้อยไปหามาก แล้วนำผลลัพธ์ต่างๆมาแสดงเป็นผลลัพธ์

Flow Chart คำสั่ง For
รูปแบบคำสั่ง
for (กำหนดค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร)
{
     คำสั่งต่างๆ;
}



คำสั่ง While
          จะพิจารณาเงื่อนไขแล้วค่อยทำ ถ้าเงื่อนไขเป็นจริงจะทำคำสั่งที่กำหนด ถ้าเงื่อนไขเป็นเท็จจะกระโดดออกจากลูปทันที

          คำสั่งนี้เหมาะสำหรับการบวกเพิ่มจำนวนค่าต่างๆ เช่น ค่าผลรวม SUM ต่างๆ การคำนวณค่าเงิน ซึ่งการใช้งานจะเหมือนกับ คำสั่ง for แต่การออกจาก loop ขึ้นอยู่กับเงื่อนไขว่ายังคงอยู่ในเงื่อนไขหรือเปล่า ถ้าในคำสั่ง เราไม่เพิ่มค่า ตัวแปรที่เทียบไป ระบบก็จะทำการ loop ไม่รู้จบ จนกว่าจะหลุดจากเงื่อนไข คือตัวแปรมีการเปลี่ยนแปลงนั่นเอง เพราะฉะนั้นคำสั่งนี้ครับ ควรระมัดระวังการใช้งานเป็นพิเศษ อาจจะทำให้เครื่อง hang ได้

Flow Chart คำสั่ง While


รูปแบบคำสั่ง
while (เงื่อนไข)
{
     คำสั่งต่างๆ;
}


คำสั่ง do..while
          จะทำคำสั่งที่กำหนดก่อนแล้วค่อยพิจารณาเงื่อนไข ถ้าเงื่อนไขเป็นเท็จ จะกระโดดออกจากลูปทันที
          คำสั่งนี้เหมาะสำหรับ การวนลูปแบบ ต้องการกำหนดค่าตัวแปรต่างๆ ใน loop ที่วนครั้งแรกก่อน จากนั้นก็จะทำตามเงื่อนไข อาจจะเพิ่ม หรือลดจำนวนค่าตัวแปร หรืออาจจะเทียบตัวแปรได้ แต่ก็ระวังการวน loop ไม่รู้จบด้วยเช่นกัน เพราะมันจะเป็นปัญหาเหมือนกันกับคำสั่ง while

Flow Chart คำสั่ง Do….While

รูปแบบคำสั่ง
do
{
     คำสั่งต่างๆ;
}
while (เงื่อนไข);











ขอบคุณที่มา 
http://www.chandra.ac.th/office/ict/document/it/php/variable.htm
http://itnews4u.com/if-php.html
หนังสือเรียนวิชาPHP โดย นายทองปาน ปริวัตร  ม.ภาคตะวันออกเฉียงเหนือ