php

PHP

ประวัติ PHP

         ในช่วงแรกภาษาที่นิยมใช้ในการทำงานบนระบบ Network คือ HTML (Hypertext Markup Lanuage) แต่ว่า โอ้ว....ววว..... ภาษา HTML เป็น Static Language นะซิ เอ แล้ว Static Language นี่ มันคือ อะไรหว่า ?!!? ไม่ต้องสงสัยครับ Static Language ก็คือ ภาษาที่ใช้สร้างข้อมูลประเภทตัวอักษร ภาพ หรือ Object อื่นๆ ที่ไม่สามารถเปลี่ยนแปลงได้ ด้วยตัวของมันเอง หรือเรียกง่ายๆ ว่าข้อมูลที่คงที่นั่นเอง เป็นงหละทีนี้ ก็ ทำให้ไม่ยืดหยุ่นนะซิ ต่อมา ความต้องการของมนุษย์ ไม่มีวันเพียงพอ จึงได้มีการพัฒนา ภาษาที่เป็น Dynamic Lanuage ขึ้นมา เอาหละสิ เจ้า 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 เป็นต้น

Top

รายชื่อของนักพัฒนาภาษา PHP ที่เป็นแกนหลักสำคัญในปัจจุบันมีดังต่อไปนี้

         Zeev Suraski, Israel Andi Gutmans, Israel Shane Caraveo, Florida USA Stig Bakken, Norway Andrey Zmievski, Nebraska USA Sascha Schumann, Dortmund, Germany Thies C. Arntzen, Hamburg, Germany Jim Winstead, Los Angeles, USA Rasmus Lerdorf, North Carolina, USA

         เนื่องจากว่า PHP ไม่ได้เป็นส่วนหนึ่งของตัว Web Server ดังนั้นถ้าจะใช้ PHP ก็จะต้องดูก่อนว่า Web server นั้นสามารถใช้สคริปต์ PHP ได้หรือไม่ ยกตัวอย่างเช่น PHP สามารถใช้ได้กับ Apache WebServer และ Personal Web Server (PWP) สำหรับระบบปฏิบัติการ Windows 95/98/NT ในกรณีของ Apache เราสามารถใช้ PHP ได้สองรูปแบบคือ ในลักษณะของ CGI และ Apache Module ความแตกต่างอยู่ตรงที่ว่า ถ้าใช้ PHP เป็นแบบโมดูล PHP จะเป็นส่วนหนึ่งของ Apache หรือเป็นส่วนขยายในการทำงานนั่นเอง ซึ่งจะทำงานได้เร็วกว่าแบบที่เป็น CGI เพราะว่า ถ้าเป็น CGI แล้ว ตัวแปลชุดคำสั่งของ PHP ถือว่าเป็นแค่โปรแกรมภายนอก ซึ่ง Apache จะต้องเรียกขึ้นมาทำงานทุกครั้ง ที่ต้องการใช้ PHP ดังนั้น ถ้ามองในเรื่องของประสิทธิ ภาพในการทำงาน การใช้ PHP แบบที่เป็นโมดูลหนึ่งของ Apache จะทำงานได้มีประสิทธิภาพมากกว่า ต่อไปนี้เราจะมาทำความรู้จักกับภาษา PHP และทำความเข้าใจการทำงาน รวมถึงคำสั่งพื้นฐานต่างๆ ที่ใช้ในการเขียนสคริปต์ในภาษา PHP

Top

การสอดแทรกคำสั่งภาษา PHP ในเอกสาร HTML

         เพื่อเป็นการบ่งบอกให้รู้ว่า ส่วนใดเป็นคำสั่ง PHP ที่อยู่ภายในเอกสาร HTML จึงได้มีการกำหนดสัญลักษณ์ไว้ดังนี้ ซึ่งสามารถทำได้หลายรูปแบบ เช่น

 
TAG
STLY
<? ... ?>
(SGML style)
<?php ... ?>
(XML style)
<script language="php"> ... </script>
(JavaScript style)
<% ... %>
(ASP style)
 

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

 
ตัวอย่าง

<HTML>
   <HEAD><TITLE> Homepage ฉันเอง </TITLE></HEAD>
   <BODY BGCOLOR=#FFFFFF>
      <H1><? echo "สวัสดี พ่อ แม่ พี่น้อง "; ?></H1>
       Your web browser is <? echo $HTTP_USER_AGENT; ?>.
   </BODY>
</HTML>

 

        คำสั่งแรกที่ง่ายที่สุดสำหรับการเรียนรู้ ก็คือคำสั่ง echo แล้วตามด้วยข้อความหรือสตริงค์ (string) ข้อความในภาษา PHP จะเริ่มต้นและจบด้วย double quote (") เหมือนในภาษาซี

 
ตัวอย่าง

<?
   echo "สวัสดี พ่อ แม่ พี่น้อง";
?>

 

        โปรดสังเกตว่า คำสั่งแต่ละคำสั่งในภาษา PHP จะจบท้ายคำสั่งด้วย semicolon (;) เหมือนในภาษาซี ซี่ง คำสั่งหรือฟังก์ชันในภาษา PHP นั้นจะเขียนด้วยตัวพิมพ์เล็กหรือใหญ่ ก็ได้ (case-insensitive)

Top

ตัวแปรในภาษา PHP

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

 
ตัวอย่าง
$datastring = "สวัสดี พ่อ แม่ พี่น้อง";
$datainteger = 1024;
$datafloat = 0.707;
 

         ถ้าเราต้องการจะแสดงค่าของตัวแปร ก็อาจจะใช้คำสั่ง echo ได้

 
ตัวอย่าง
echo "$datastring\n";
echo "$datainteger\n";
echo "$datafloat\n";
 

        สัญลักษณ์ \n หมายถึงการขึ้นบรรทัดใหม่ เป็น escape character ตัวหนึ่ง (สำหรับตัวอื่นๆ โปรดดูในตาราง) เมื่อพิมพ์ข้อความเป็นเอาพุต และโปรดสังเกตว่า สำหรับการใช้งานภายในเอกสาร HTML การขึ้นบรรทัดใหม่โดยใช้ \n จะแตกต่างจากการขึ้นบรรทัดโดยใช้ <BR> ใน HTML

 
ตัวอย่าง

<?
   $datastring = "สวัสดี พ่อ แม่ พี่น้อ";
   $datainteger = 1024;
   $datafloat = 0.707;echo
   "$datastring\n";
   echo "$datainteger\n";
   echo "$datafloat\n";
?>

 


<table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
Escaped characters

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

 

</tbody></table><p align="justify">        ตัวแปรตัวหนึ่ง อาจจะมีข้อมูลหลายแบบในช่วงเวลาที่ต่างกัน แต่การจะใช้งานบ้างครั้งจะต้องดูด้วยว่า เมื่อไหร่จะใช้เป็นตัวเลขเท่านั้น และไม่ใช้กับข้อความเป็นต้น</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $x = 12;
   $y = $x + 17.5;
   echo "$x, $y \n";
   $x = "abc";
   echo "$x \n";
   $z = $x + 19.5;
   echo "$x, $z \n";
   echo ("1024.5" - 14);
   echo (0xef + 007);
?>

 

</tbody></table><p align="justify">        ในกรณีนี้ เรากำหนดในตอนแรกว่า $x ให้เก็บค่า 12 ซึ่งเป็นจำนวนเต็ม ถ้าเรานำมาบวกกับ 17.5 ผลที่ได้ก็จะเป็น 29.5 ซึ่งกลายเป็นเลขทศนิยม แล้วเก็บไว้ในตัวแปร $y ต่อมากำหนดให้ตัวแปร $x เก็บสตริงค์ที่เก็บข้อความ “abc” ถ้าเรานำมาบวกกับ 19.5 กรณีนี้ก็จะให้ผลที่ได้ไม่ถูกต้อง เนื่องจากไม่ สามารถนำข้อความมาบวกกับตัวเลขได้ แต่ PHP อนุญาตให้เราทำเช่นนั้นได้ในบางกรณี สมมุติว่า สตริงค์มีเฉพาะตัวเลขและ สามารถเปลี่ยนเป็น เลขจำนวนเต็ม หรือจำนวนจริงได้โดยอัตโนมัติ เราก็นำสตริงค์ นี้มาบวกลบคูณหรือหารกับตัวแปรที่เก็บเป็นตัวเลขได้ ค่าคงที่สำหรับเลขจำนวนเต็ม อาจจะอยู่ในรูปของเลขฐานแปดหรือสิบหกก็ได้ ถ้าเป็นเลขฐานแปดจะมีเลขศูนย์นำ ถ้าเป็นเลขฐานสิบหกจะมี 0x นำหน้า การอ่านและแปลงแบบข้อมูลในตัวแปรหรือค่าคงที่แบบเจาะจงเราสามารถแปลงแบบข้อมูลจากแบบหนึ่งไปยังอีกแบบหนึ่ง (type casting) เช่น แปลงจากข้อความที่มีเฉพาะตัวเลขให้กลายเป็นเลขจำนวนเต็ม (int) หรือทศนิยม (double), (float), (real) หรืออาจจะใช้คำสั่ง settype() ทำได้ดังนี้ </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $x = ((double)"100.1") + 0.3e+3;
    echo $x," <BR>\n";
   echo ($x=(int)$x)," <BR>\n";
   $x = "P".$x."\n";
   echo $x," <BR>\n";

   $x= ceil(13.45); /* get integer part */
   echo $x," <BR>\n";
   if (!settype( $x, "integer") ) {
           echo "error\n";
   }
   echo $x," $x%5=",($x%5)," <BR>\n";
?>

 

</tbody></table><p>Top</p><h3>การใช้ตัวแปร ใน PHP</h3><p align="justify">         ถ้าต้องการเช็คดูว่า ตัวแปรมีข้อมูลแบบใด เราสามารถใช้คำสั่ง gettype() ได้ ค่าที่ได้จากฟังก์ชันก็จะเป็น “integer” “double” หรือ “string” เป็นต้น</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   echo gettype(0),"\n";
   echo gettype(1.1),"\n";
   echo gettype(""),"\n";
   echo gettype((1==1)),"\n";

   $var="abc";
   if ( gettype($var)=="string" ) {
      echo "this is a string\n";
   }
?>

 

</tbody></table><p align="justify">        เราอาจจะไม่ใช้ gettype() ก็ได้ แต่เลือกใช้ฟังก์ชัน is_long() สำหรับเช็คค่าที่เป็นเลขจำนวนเต็ม, is_string() สำหรับเช็คค่าที่เป็นสตริงค์, is_double() สำหรับค่าที่เป็นเลขทศนิยม, is_array() สำหรับค่าที่เป็นอาร์เรย์ หรือ is_object() สำหรับค่าที่เป็นออปเจคจากคลาสแทน ซึ่งจะให้ค่าเท่ากับ true (1) ถ้าตัวแปรมีแบบข้อมูล ตรงตามที่กำหนด </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   unset($a);
   $a="hello";
   if (is_string($a) == true) {
      echo "\$a is a string <BR>\n";
   }

unset($a);
   $a[]="red";
   $a[]="green";
   $a[]="blue";

   if (is_array($a) == true) {
      echo "\$a is an array of size ",count($a),"<BR>\n";
   }
?>

 

</tbody></table><p align="justify">        โปรดสังเกตว่า เราใช้คำสั่ง unset() เพื่อลบค่าที่ตัวแปรเก็บอยู่ในขณะนั้น ในกรณีนี้ เรากำหนดให้ $a เป็นสตริงค์ในตอนแรก ถ้าเราจะต้องการใช้ตัวแปรตัวเดียวกันนี้ เป็นค่าใหม่แต่เป็นอาร์เรย์ ก็จะใช้คำสั่ง unset() ก่อน </p><p>Top</p><h3>การใช้ echo เพื่อแสดงข้อความ</h3><p align="justify">        การพิมพ์ค่าใดๆที่เก็บอยู่ในตัวแปร ถ้าชื่อของตัวแปรอยู่ในสตริงค์ระหว่าง double quote เวลาสร้างเอาพุตแล้ว จะอ่านค่าของตัวแปรนั้นก่อนแล้วจึงแทนที่ลงในข้อความ แต่ถ้านำหน้าด้วย backslash () ก็จะไม่มีการอ่านค่าของตัวแปร เช่น “$a” จะให้ผลต่างจาก “$a” สังเกตได้จากตัวอย่างต่อไปนี้</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $a=1;
   echo "\$a=$a <BR>\n";
   $test = "test";
   echo "$test$test$test<BR>\n";
   echo $test,$test,$test,"<BR>\n";

   $a = 1;
   $b = 2;
   echo $a,"+",$b,"=","$a+$b","<BR>\n";
   echo $a,"+",$b,"=",$a+$b,"<BR>\n";
?>

 

</tbody></table><p align="justify">        สำหรับข้อความในภาษา PHP เราอาจจะใช้ single qoute แทน double quote ได้ แต่เวลาใช้งานร่วมกับ echo หรือ print() จะให้ผลต่างกัน ซึ่งสังเกตได้จากตัวอย่างต่อไปนี้ </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $a="aaa";
   $b = 'bbb';
   echo "$a $b<BR>\n";
   echo '$a $b<BR>\n';
?>

 

</tbody></table><p align="justify">        ตัวแปลคำสั่งจะมองข้ามชื่อตัวแปรและรวมถึงพวก escape sequence ต่างๆด้วยที่อยู่ในข้อความที่ใช้ single quote </p><p>Top</p><h3>คำอธิบายในภาษา PHP</h3><p align="justify">        ถ้าเราต้องการเขียนคำอธิบายในส่วนใดๆก็ตามของสคริปต์ เราก็จะสามารถทำได้โดยใช้ /* … */ เหมือนในภาษาซี หรือ // เหมือนในภาษาจาวา หรือ # เหมือน shell script โปรดสังเกตว่า // ใช้เขียนนำคำอธิบายในภายบรรทัดหนึ่งๆ เท่านั้น ส่วน # ใช้เริ่มต้นของบรรทัดที่เขียนคำอธิบาย </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $a="aaa"; #ตัวแปร a
   $b = 'bbb'; /* ตัวแปร b */
   echo "$a $b<BR>\n"; // แสดง ค่า a และ ค่า B
   echo '$a $b<BR>\n';
?>

 

</tbody></table><p>Top</p><h3>การคำนวณทางคณิตศาสตร์</h3><p align="justify">        เครื่องหมายที่ใช้มีดังนี้</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
เครื่องหมาย
ตัวอย่าง
บวก (+)
ลบ (-)
คูณ (*)
หาร (/)
$x + $y
$x - $y
$x * $y
$x / $y
 

</tbody></table><p align="justify">         หาเศษจากการหาร (%) หรือโมดูลัส </p><p align="justify">เช่น $x % $y การเศษจากการหารโดยปรกติจะใช้กับเลขจำนวนเต็มเท่านั้น ถ้าใช้กับเลขมีจุดทศนิยม จะมีการปัดทิ้งเป็นจำนวนเต็มก่อน กำหนดให้ $x มีค่าเท่ากับ 7 และ $y มีค่าเท่ากับ 4 </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

$x + $y 11
$x - $y 3
$x * $y 28
$x / $y 1.75
$x % $y 3

 

</tbody></table><p align="justify">        กำหนดให้ $x มีค่าเท่ากับ 2.5 และ $y มีค่าเท่ากับ 4 </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

$x + $y 6.5
$x - $y -1.5
$x * $y 1.0
$x / $y 0.615
$x % $y 2

 

</tbody></table><p>Top</p><h3>การเพิ่มหรือลดค่าของตัวเลขในตัวแปรทีละหนึ่ง</h3><p align="justify">        ตามแบบภาษาซีหรือจาวา</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง
ความหมาย
$x++
++$x
$x--
--$x
เพิ่มค่าขึ้นอีกหนึ่ง
เพิ่มค่าขึ้นอีกหนึ่ง
ลดค่าลงอีกหนึ่ง
ลดค่าลงอีกหนึ่ง
 

</tbody></table><p align="justify">        ความแตกต่างของการวาง ++ หรือ – ไว้ข้างหน้าหรือข้างหลัง คือดูว่า จะอ่านค่าของตัวแปรก่อน (ในกรณีที่มีการอ่านค่าของตัวแปร) หรืออ่านค่าหลังจากการเพิ่มหรือลด โปรดลองทำตามตัวอย่างแล้วสังเกตผลลัพธ์ที่ได้ในแต่ละกรณี </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   $x=3;
   echo $x++,"<BR>\n";
   echo $x,"<BR>\n";
   $x=3;
   echo ++$x,"<BR>\n";
   echo $x,"<BR>\n";
   $x=3;
   echo $x--,"<BR>\n";
   echo $x,"<BR>\n";
   $x=3;
   echo --$x,"<BR>\n";
   echo $x,"<BR>\n";
?>

 

</tbody></table><p>Top</p><h3>การกำหนดค่าของตัวแปรที่เป็นตัวเลขหรือสตริงค์</h3><p align="justify">        โดยใช้ assignment operators การกำหนดค่า (assignment ) หรือเปลี่ยนแปลงค่าให้แก่ตัวแปร จะใช้โอเปอร์เรเตอร์ (assignment operators) ได้ในหลายๆรูปแบบ เหมือนอย่างที่ใช้ในภาษาซี ตามตัวอย่างต่อไปนี้ </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง
ความหมาย
$x=0;
$x += 1;
$x--;
$x *= 3;
$x /= 2;
$x %= 4;
$x="";
$x .= 'A';
$x .= "BC";
เหมือนกับ $x = $x + 1;
เหมือนกับ $x = $x - 1;
เหมือนกับ $x = $x * 3;
เหมือนกับ $x = $x / 2;
เหมือนกับ $x = $x % 4;

รวมค่า char เข้าไปใน string ที่มีอยู่
รวมค่า char เข้าไปใน string ที่มีอยู่  

</tbody></table><p align="justify">        จากตัวอย่างข้างบน ในกรณีของการต่อสตริงค์ เราจะใช้จุด (.) เป็นโอเปอร์เรเตอร์</p><p>Top</p><h3>การใช้ตัวแปรเป็นชื่อของตัวแปร</h3><p align="justify">        ภาษา PHP เปิดโอกาสให้เราสามารถเลือกหรือเปลี่ยนชื่อของตัวแปรได้ ตัวอย่างเช่น</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
    $a = "var1";
   $$a = 10.3;
   echo "$a ${$a} $$a <BR>\n";
   echo "$var1 <BR>\n";
?>

 

</tbody></table><p align="justify">        จากตัวอย่างข้างบน เรากำหนดให้ตัวแปร $a เก็บสตริงค์ “var1” และจะใช้เป็นชื่อของตัวแปรอีกตัวหนึ่ง โดยทางอ้อม \(a เป็นการอ้างถึงตัวแปรที่มีชื่อเดียวกับค่าของตัวแปร $a (ในกรณีนี้คือ var1) ดังนั้นถ้าเราเขียนว่า\)a หรือ $var1 ก็หมายถึงตัวแปรตัวเดียวกัน ถ้าต้องการแสดงค่าของ \(a โดยใช้คำสั่ง echo โดยอยู่ในสตริงค์ (ระหว่าง double quotations) เราจะต้องเขียน ${$a} ไม่ใช่\)a เพราะว่า ถ้าเขียนตามแบบหลัง ตัวแปลคำสั่งจะอ่านค่า $a ก่อนแล้วแทนที่ลงในข้อความ ซึ่งจะได้ $var1แทนที่จะเป็นการอ่านค่าของ $var1 เทคนิคนี้ยังสามารถใช้ได้กับฟังก์ชัน </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   function foobar() {
   echo "foobar<BR>\n";
}
   function callFunc ($f) {
   if ( is_string($f) == true) {
      $f();
    }
}

    }callFunc("foobar");
?>

 

</tbody></table><p align="justify">        ตัวอย่างข้างบนอาจจะทำให้เกิดปัญหาถ้าสมมุติว่า $f เป็นชื่อของฟังก์ชันที่ไม่มีอยู่จริง วิธีตรวจสอบคือ การใช้ฟังก์ชัน function_exists() ดังต่อไปนี้ </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
   function MyFunc() {
      print ("ok..<BR>\n");
   }
   $f="myFunc";
   if ( function_exists($f) ) {
      $f();
   }
   else {
      echo "$f does not exist!";
   }
?>

 

</tbody></table><p>Top</p><h3>การกำหนดค่าคงที่</h3><p align="justify">        ในภาษา PHP มีการทำสัญลักษณ์ให้เก็บค่าคงที่ เช่น อาจจะเป็นสตริงค์หรือตัวเลขก็ได้ สามารถทำได้โดยใช้ คำสั่ง DEFINE() สัญลักษณ์ที่กำหนดโดยคำสั่ง DEFINE() จะเหมือนกันตัวแปรทั่วๆไป แต่แตกต่างตรงที่ว่า เมื่อนิยามแล้วจะเปลี่ยนแปลงค่าอีกไม่ได้</p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง

<?
    define(PI, 3.141592654);
   define(YES, true);
   define(NO, false);
   define("AUTHOR", "RWS");
   echo (PI/3),"<BR>\n";
   echo "AUTHOR=".AUTHOR."<BR>\n";
    echo "YES=".YES."<BR>\n";
?>

 

</tbody></table><p align="justify">        นอกจากสัญลักษณ์ที่ผู้ใช้นิยามขึ้นมาได้เองแล้วยังมีสัญลักษณ์กลุ่มหนึ่งที่ได้มีการนิยามไว้ก่อนแล้วในภาษา PHP ตัวอย่างเช่น </p><table border="0" cellspacing="0" cellpadding="0" width="450" align="center" style="background-image: url('/image/table_bg.gif')"><tbody>

 
ตัวอย่าง
ความหมาย
__LINE__
TRUE
FALSE
PHP_VERSION
PHP_OS
เก็บเลขบรรทัดภายในสคริปต์ในตอนที่ใช้
มีค่าเป็นจริง
มีค่าเป็นเท็จ
เก็บเวอร์ชั่นของ PHP
เก็บชื่อระบบปฏิบัติการที่ใช้ เช่นWindows

</tbody></table>