การเขียนโปรแกรมภาษา PHP

            
               

PHP เป็นภาษาจำพวก scripting language คำสั่งต่างๆจะเก็บอยู่ในไฟล์ที่เรียกว่า สคริปต์ (script) และเวลาใช้งานต้องอาศัยตัวแปลชุดคำสั่ง ตัวอย่างของภาษาสคริปก็เช่น JavaScript, Perl เป็นต้น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่นๆ คือ PHP ได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถสอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHP เป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded scripting language เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น
เนื่องจากว่า 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 เป็นโปร แกรมวิ่งข้าง Sever ดังนั้นขีดความสามารถไม่จำกัด
Conlatfun-นั่นคือPHP วิ่งบนเครื่อง UNIX,Linux,Windows ได้หมด
เรียนรู้ง่าย เนืองจาก PHP ฝั่งเข้าไปใน HTML และใช้ดครงสร้างและไวยากรณ์ภาษาง่ายๆ
เร็วและมีประสิทธิภาพ โดยเฉพาะเมือใช้กับ Apach Xerve เพราะไม่ต้องใช้โปรแกรมจากภายนอก
ใช้ร่วมกับ XML ได้ทันที
ใช้กับระบบแฟ้มข้อมูลได้
ใช้กับข้อมูลตัวอักษรได้อย่างมีประสิทธิภาพ
ใช้กับโครงสร้างข้อมูลใช้ได้แบบ Scalar,Array,Associative array
ใช้กับการประมวลผลภาพได้

คำอธิบายหรือ Comment ในภาษา PHP

ถ้าเราต้องการเขียนคำอธิบายในส่วนใดๆก็ตามของสคริปต์ เราก็จะสามารถทำได้โดยใช้ /* ... */ เหมือนในภาษาซี หรือ // เหมือนในภาษาจาวา หรือ # เหมือน shell script โปรดสังเกตว่า // ใช้เขียนนำคำอธิบายในภายบรรทัดหนึ่งๆเท่านั้น ส่วน # ใช้เริ่มต้นของบรรทัดที่เขียนคำอธิบาย


<?
# comment
$a = 41; // set $a to 41.
$b =10; // set $b to 10.
$b += $a; /* add $a to $b */
echo $b," \n";
?>
------

<?
class stack {
var $arrays;
var $size;
function stack() { // class constructor
$this->size = 0;
unset($this->arrays);
}
function push($elem) { // put an element on stack
$this->arrays[$this->size] = $elem;
$this->size++;
}
function get_size() { // get number of elements stored
return $this->size;
}
function is_empty() { // is stack empty ?
return ($this->size == 0) ? true : false;
}
function pop() { // retrieve an element from the top of stack
if ( $this->is_empty() == false ) {
$this->size--;
return $this->arrays[$this->size];
}
else
return 0;
}
}
$inst = new stack; // create an object from stack class
echo "initial stack size=".($inst->get_size()),"<BR>\n";
for ($i=0; $i < 10; $i++) {
$inst->push( ($i*7)%11 );
}
echo "current stack size=".($inst->get_size()),"<BR>\n";
while (! $inst->is_empty() ) {
echo "pop ".$inst->pop(),"<BR>\n";
}
echo "stack is ".($inst->is_empty() ? "empty." : "not empty.")."<BR>\n";
$inst = 0; // unuse this instance of class stack
?>
Echo
รูปแบบคำสั่ง
Echo ข้อความที่1,ข้อความที่1,ข้อความที่1,....;

ตัวอย่าง
Sample1.php
<?
echo"Hello Word <br>";
echo"Hello PHP Programming";
?>
Out Put

Print

รูปแบบของคำสั่ง

Print("ข้อความที่ต้องการแสดง");
คำสั่ง Print จะทำงานเหมือนกับคำสั่ง Echo แต่คำสั่ง Print นั้นสามารถแสดงค่าได้ครั้งหนึ่งค่าเท่านั้น ในขณะที่คำสั่ง Echo สามารถแสดงค่าได้หลาย ๆ ค่า
ตัวอย่าง
Sample2.php
<?
echo"Hello Word";
echo"<br>";
echo"Hello PHP Programming";
?>
Out Put

Printf

รูปแบบคำสั่ง

(Printf(String format,…);
คำสั่ง Printf จะทำงานเหมือนกับคำสั่ง echo และ print เพื่อส่งข้อมูลไปแสดงที่
Brownser แต่คำสั่ง Printf นั้นสามารถที่จะกำหนดรูปแบบการแสดงข้อมูลได้ด้วย เหมือนกับภาษา C
Sample3.php
<?
$name="Werachai Nukitram";
$old=21;
$salary=3900.45;
$key=165;
printf("ชื่อ %s ",$name);
printf("<br>อายุ %d ",$old);
printf("<br>เงินเดือน %.2f ",$salary);
printf("<br>Character ของ key คือ %c ",$key);
?>
สัญลักษณ์ในฟังก์ชั่น prinf();


%d

 

เลขฐานสิบ

%b

 

เลขฐานสอง

%c

 

รหัส ASCII

%f

 

ทศนิยม

%o

 

เลขฐานแปด

%s

 

ตัวอักษร String

%x , %X

 

เลขฐานสิบหก

Out put


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

Flush();
<?
Echo"ส่งข้อความไปให้ Browser";
Flush();
?>

เพิ่มเติมครับ

บางคำสั่งอาจจะใช้แทนกันได้ครับ เช่น print กับ Echo ให้เลือกใช้ให้เหมาะสมกับ Program แล้วกันครับ
ภาษา php สาารถแทรกในเอกสาร Html ได้เหมือนกับภาษา Asp
โดยจะอยู่ภายใต้เครื่องหมาย <? .................. ?>

ซึ่งสามารถกำหนดได้หลายรูปแบบ

เช่น

<? ... ?> (SGML style)


<?php ... ?> (XML style)


<script language="php"> ... </script> (JavaScript style)


<% ... %> (ASP style)
ตัวอย่าง

Sample1.php

<html>
<head>
<title>Test My Homepage</title>
</head>
<body>
ส่วนของ Html<br>
<? echo"ส่วนของ php"; ?><br>
ส่วนของ Html<br>
<? echo"คุณสามารถแทรก Script php ใว้ตรงไหนก็ได้"; ?>
</body>
</html>
Out Put

ชนิดของข้อมูลและตัวแปร

สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (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);
?>


การประกาศค่าตัวแปร


1.Integer เก็บจำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก

$a=123;
$a=-123;
Sample1.php
<?
$a=123;
$b=456;
$c=$a+$b;
echo"$c";
?>
Out Put



2. Float เก็บจำนวนจริงทั้งบวกและลบ ทั้งมีทศนิยม และไม่มีทศนิยม
$a=1.23;
$a=-1.23;
Sample2.php
<?
$a=123.45;
$b=456.78;
$c=$a*$b;
printf("%.2f ",$c);
?>
Out Put

 

 

 

3.String เก็บจำนวนตัวเลข และ ข้อความ
$a="PHP Programming";
$a="1234567890";
Sample3.php
<?
$a="PHP Programming";
$b="1234567890";
echo"$a <br> $b";
?>
Out Put


การตรวจสอบว่าตัวแปรนี้มีการกำหนดค่าหรือไม่


isset($var-name);

<?
$a=1234;
if (isset($a))
{
echo"ไม่มีการกำหนดค่าตัวแปร";
}
else
{
echo"มีการกำหนดค่าตัวแปร";
}

?>
การตรวจสอบว่าตัวแปรนี้มีค่าว่างหรือไม่

empty($var-name);
<?
$a=1234;
if (empty($a))
{
echo"ตัวแปรมีค่าว่าง";
}
else
{
echo"ตัวแปรมีค่าไม่ว่าง";
}

?>




Sample4.php

<?
$mystring = "Hello World!";
$myinteger = 1031;
$myfloat = 3.14;
?>
ถ้าเราต้องการจะแสดงค่าของตัวแปร ก็อาจจะใช้คำสั่ง echo ได้ ตัวอย่างเช่น

echo "$mystring\n";
echo "$myinteger\n";
echo "$myfloat\n";

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

<?
$mystring = "Hello World!";
$myinteger = 1031;
$myfloat = 3.14;
echo "$mystring<BR>\n";
echo "$myinteger<BR>\n";
echo "$myfloat<BR>\n";
?>
Escaped characters \n newline
\r carriage
\t horizontal tab
\\ backslash
\$ dollar sign
\" double-quote
%% percent

ตัวแปรตัวหนึ่ง อาจจะมีข้อมูลหลายแบบในช่วงเวลาที่ต่างกัน แต่การจะใช้งานบ้างครั้งจะต้องดูด้วยว่า เมื่อไหร่จะใช้เป็นตัวเลขเท่านั้น และไม่ใช้กับข้อความเป็นต้น ตัวอย่างเช่น

<?
$x = 10;
$y = $x + 15.5;
echo "$x, $y \n";
$x = "abc";
echo "$x \n";
$z = $x + 15.5;
echo "$x, $z \n";
echo ("100.5" - 16);
echo (0xef + 007);
?>

 

TOP