Transcript PHP

ั ญา เครือหงษ์
สญ
ภาควิชาวิทยาการคอมพิวเตอร์และ
เทคโนโลยีสารสนเทศ
เดิม PHP ย่อมาจาก Personal Home Page
1
ลักษณะของเว็บเพจ
 แบบ Static ไม่มก
ี ารเปลีย
่ นแปลงจนกว่าจะมีการ Upload
ไฟล์ใหม่

มีการปรับปรุงเว็บยาก
่ HTML
เชน
้ ้ทันที
 แบบ Dynamic เพือ
่ ให ้มีการตอบสนองต่อผู ้ใชได





CGI (Common Gateway Interface)
Perl
DHTML
การแทรก Script ลงใน HTML
ASP PHP JSP ฯลฯ
2
Web Server
• การทางานของ เว็บเพจ
– Client/Server
• Server ของเว็บเพจ เรียกว่า Web Server
– IIS (Internet Information Services)
– PWS (Personal Web Server)
– Apache
• Browser
– Internet Explorer
– Netscape
3
ลักษณะการทางานของ Internet
Response
Web Server
Request
Client
4
Static Web Pages
• เป็ นเว็บเพจทีพ
่ ัฒนาในระยะแรกๆ
้ จ
• มีการตอบสนองต่อผู ้ใชที
่ ากัด เนือ
่ งจากมีการ
กาหนดรูปแบบการกระทาต่างๆไว ้ล่วงหน ้า
• รูปแบบของ Page จึงเป็ นลักษณะเดิมอยูเ่ สมอ
5
3. Web server locates .html file
1. Author Writes HTML
Web Server
4. HTML stream (from .htm page)
Returned to browser
5. Browser Processes HTML
And displays Pages
2. Client request Webpage
Client
6
Dynamic Web Pages
• มีโครงสร ้างเหมือนกับ Static Web Pages
• แต่มช
ี ด
ุ คาสงั่ Script ทีท
่ าให ้ HTML tag สามารถสนอง
ต่อการกระทาต่างๆ ได ้ และสามารถกาหนดการทางาน
่
ได ้ เชน
– สงั่ ให ้คานวณหลังคลิกปุ่ ม
– นาข ้อมูลจากฐานข ้อมูลขึน
้ มาแสดงได ้
– การทาให ้ภาพเคลือ
่ นไหวบน Page ได ้
7
Script
เว็บเพจทีก
่ าหนดการกระทาต่างๆเพือ
่ สามารถรองรับสถานการณ์ ที่
ความว่าจะเกิดขึน
้ ได ้ทันที
• Client-Side Script
่ VBScript, JavaScript
– จะถูกแปล Script โดย Browser เชน
• Server-Side Script
่ ASP , PHP ,JSP
– จะถูกแปลและประมวลผลโดย Web Server เชน
8
Client-Side Script
3. HTML stream (from .htm page)
2. Web Server lacate .htm File
Web Server
Returned to browser
4. Browser Process Client-side script
5. Browser Processes HTML
And displays Pages
1. Client Request Webpage
Client
9
Server-Side
Script
3. Web server processes instruction to create HTML
2. Web server Instruction File
Web Server
4. HTML Stream returned to Browser
5. Browser Processes HTML
And displays Pages
1. Client Request Webpage
Client
10
Scripting Language
• PHP เป็ นภาษาจาพวก scripting language คาสงั่
ต่างๆจะเก็บอยูใ่ นไฟล์ทเี่ รียกว่า สคริปต์ (script) และ
้
ั ตัวแปลชุดคาสงั่
เวลาใชงานต
้องอาศย
ตัวอย่างของ
่ JavaScript, Perl เป็ นต ้น
ภาษาสคริปก็เชน
• ลักษณะของ PHP ทีแ
่ ตกต่างจากภาษาสคริปต์แบบ
อืน
่ ๆ คือ PHP ได ้รับการพัฒนาและออกแบบมา เพือ
่ ใช ้
งานในการสร ้างเอกสารแบบ
HTML
โดยสามารถ
สอดแทรกหรือแก ้ไขเนือ
้ หาได ้โดยอัตโนมัต ิ ดังนั น
้ จึง
กล่าวว่า PHP เป็ นภาษาทีเ่ รียกว่า server-side หรือ
HTML-embedded scripting language เป็ นเครือ
่ งมือ
ทีส
่ าคัญชนิดหนึง่ ทีช
่ ว่ ยให ้เราสามารถสร ้างเอกสาร
11
ิ ธิภาพและมี
แบบ Dynamic HTML ได ้อย่างมีประสท
ลักษณะเด่นของ PHP
้ ้ฟรี
• ใชได
• PHP เป็ นโปร แกรมวิง่ ข ้าง Sever ดังนัน
้ ขีดความสามารถ
ไม่จากัด
• Conlatfun-นั่นคือPHP วิง่ บนเครือ
่ ง UNIX,Linux,Windows
ได ้หม
• เรียนรู ้ง่าย เนืองจาก PHP ฝั่ งเข ้าไปใน HTML และใช ้
โครงสร ้างและไวยากรณ์ภาษาง่ายๆ
ิ ธิภาพ โดยเฉพาะเมือใชกั้ บ Apach Xerve
• เร็วและมีประสท
้
เพราะไม่ต ้องใชโปรแกรมจากภายนอก
• ใชร่้ วมกับ XML ได ้ทันที
• ใชกั้ บระบบแฟ้ มข ้อมูลได ้
ิ ธิภาพ
• ใชกั้ บข ้อมูลตัวอักษรได ้อย่างมีประสท
้ ้แบบ
ใชกั้ บโครงสร ้างข ้อมูลใชได
Scalar,Array,Associative array
• ใชกั้ บการประมวลผลภาพได ้
12
ติดตัง้ PHP โดยใช้ Apache จาลองเป็ น
Web Server
• สาหรับการติดตัง้ Apache ผมจะแนะนา
โปรแกรม Appserv ซงึ่ เป็ น โปรแกรมทีร่ วมเอา
package
• Appserv คือ โปรแกรมทีร่ วมเอา Package
ประกอบด ้วย
–
–
–
–
Apache Web Server
PHP Script Language
MySQL Database
phpMyAdmin Database Manager
13
้
ขันตอนการติ
ดตง้ั Web Server ด้วย
AppServ
14
่
พอร ์ตปกติคอื 80 อาจใช ้พอร ์ตอืน
ได ้เช่น 8080
กรุณาจา
password ให ้ได ้
เพราะต ้องใช ้ใน
phpMyadmin
โดย User คือ root
15
16
่
การเซ็ต EditPlus ให้เชือมต่
อกับ
WebServer
•
•
่
เปิ ดโปรแกรม Edit Plus แล ้วเข ้าไปทีเมนู
ToolsPreferences
จากนั้นไปกดที่ Tools
่ มรายการ
่
– กด Add เพือเพิ
่
– กด Edit เพือแก
้ไขรายการเดิม
่
่ ่บนสุดเสมอ)
(ซึงปกติ
มน
ั จะอ่านทีอยู
– จากนั้นกาหนดชือ่ Host หรือ IP
่ างาน
– แล ้วกาหนด Folder ทีจะท
่ าจอหลัก
– จากนั้นกลับทีหน้
แล ้วลองเขียนโปรแกรม PHP
่
แล ้วกด Ctrl+B เพือทดสอบ
17
Run ดังนี ้ http://localhost
18
ใช้โปแกรม Notepad หรือ editor สร ้าง
่ งนี ้
เอกสาร PHP โดยมีคาสังดั
Sample.php
<html>
<title>ทดสอบ Script แรก</title>
<body>
<?Php
echo "ผมสามารถเขียน PHP ได้แล้ว
ครับ";
?>
</body>
</html>
ให้บน
ั ทึกไฟล ์ลงที่
โฟลเดอร ์
19
คาอธิบายหรือ 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";
?>
20
่ นฐาน
้
คาสังพื
คาสัง่ Echo
• รู ปแบบคาสัง่
Echo ข ้อความที1่ ,ข ้อความที1่ ,ข ้อความที1่ ,....;
ตัวอย่าง
<?
echo"Hello Word <br>";
echo"Hello PHP Programming";
?>
Sample1.php
21
คาสัง่ Printf
• รู ปแบบคาสัง่ Printf(String format,…);
คาสงั่ Printf จะทางานเหมือนกับคาสงั่ echo และ print
เพือ
่ สง่ ข ้อมูลไปแสดงที่ Brownser แต่คาสงั่ Printf นัน
้
สามารถทีจ
่ ะกาหนดรูปแบบการแสดงข ้อมูลได ้ด ้วย
เหมือนกับภาษา C
<?
$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);
?>
Sample3.php
22
่ ั printf();
สัญลักษณ์ในฟั งก ์ชน
%d
%b
%c
%f
%o
%s
%x , %X
เลขฐานสิบ
เลขฐานสอง
รหัส ASCII
ทศนิ ยม
เลขฐานแปด
ตัวอ ักษร String
เลขฐานสิบ
23
คาสัง่ Flush
้
• โดยปกติคาสงั่ ทีใ่ ชในการส
ง่ ข ้อมูลไปยัง Browser นัน
้
จะต ้องมีการเก็บข ้อมูลไว ้ในหน่วยความจาในสว่ นที่
เรียกว่า Buffer ก่อน และสง่ ข ้อมูลไปก็ตอ
่ เมือ
่ ข ้อมูลที่
อยูใ่ น Buffer นัน
้ เต็ม Flushนัน
้ จะ ทาให ้ข ้อมูลทีอ
่ ยูใ่ น
Buffer ถูกสง่ ไปแสดงที
่ Browser โดยทันที โดยไม่ต ้อง
่
รู ปแบบของคาสัง Flush();
รอให ้ข ้อมูลใน Buffer นัน
้ เต็ม
<?
Echo"สง่ ข ้อความไปให ้ Browser";
Flush();
?>
้
่ print กับ Echo
บางคาสงั่ อาจจะใชแทนกั
นได ้ครับ เชน
24
ชนิดของข ้อมูลและตัวแปร
• สาหรับการเขียนโปรแกรมสาหรับภาษาคอมพิวเตอร์
ี มิได ้คือ การกาหนดและใชตั้ ว
ระดับสูง สงิ่ ทีจ
่ ะขาดเสย
แปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับใน
ภาษา Perl คือเริม
่ ต ้นด ้วยเครือ
่ งหมาย dollar ($) โดย
เราไม่จาเป็ นต ้องกาหนดแบบของข ้อมูล (data type)
อย่างเจาะจงเหมือนในภาษาซ ี เพราะว่า ตัวแปลภาษา
จะจาแนกเองโดยอัตโนมัตวิ า่ ตัวแปรดังกล่าว ใชข้ ้อมูล
่ ข ้อความ จานวนเต็ม
แบบใด ในชว่ งเวลานั น
้ ๆ เชน
จานวนทีม
่ เี ลขจุดทศนิยม ตรรก เป็ นต ้น
25
• Integer จานวนเต็มบวก และจานวนเต็มลบ
ิ ฐานแปด และฐานสบ
ิ หก
เลขฐานสบ
• Float
เก็บจานวนจริงทัง้ บวกและลบ ทัง้ มี
ทศนิยม และไม่มท
ี ศนิยม
• String
เก็บจานวนตัวเลข และ ข ้อความ
• Array
เ
ก็บข ้อมูลทเป็ นชุด หรือ อาร์เรย์
• Object เก็บข ้อมูลในลักษณะออปเจ็กต์เพือ
่ การ
้ น
เรียกใชเป็
• Class Object หรือ FunctionType juggling เก็บข ้อมูล
้ ม
ในลักษณะเฉพราะหรือผู ้ทีใ่ ชเพิ
่ เข ้ามา
26
ื่ ตัวแปร
หลักการตัง้ ชอ
• $var-name=value;
้ อตั
่ วแปร
• ขอบเขตการตังชื
- ขึน
้ ต ้นด ้วยเครืง่ หมาย $ แล ้วตามด ้วยตัวอักษร AZ,a-z
- มีความยาวไม่เกิน 255 ตัวอักษร
่ งว่าง
- ห ้ามมีจด
ุ ทศนิยม หรือชอ
ื่ ให ้มี
- จะต ้องไม่ตรงกับคาสงวน และควรตัง้ ชอ
ความหมายใกล ้เคียงกับ ค่าทีเ่ ก็บ
- ตัวอักษรเล็กหรือใหญ่จะเป็ นตัวแปรต่างกัน
- ถ ้าตัง้ ตัวแปรมาใหม่ แล ้วทับตัวแปรเก่า ค่าของตัว
แปรเก่าจะหายไป
27
การประกาศค่าตัวแปร
• 1.Integer เก็บจานวนเต็มบวก และจานวนเต็ม
ิ ฐานแปด และฐานสบ
ิ หก
ลบ เลขฐานสบ
$a=123;
$a=-123;
Sample1.php
<?
$a=123;
$b=456;
$c=$a+$b;
echo"$c";
?>
28
• 2. Float เก็บจานวนจริงทัง้ บวกและลบ ทัง้ มีทศนิยม และ
ไม่มท
ี ศนิยม
$a=1.23;
Sample2.php
$a=-1.23;
<?
$a=123.45;
$b=456.78;
$c=$a*$b;
printf("%.2f ",$c);
?>
29
• 3.String เก็บจานวนตัวเลข และ ข ้อความ
• $a="PHP Programming";
$a="1234567890";
Sample3.php
<?
$a="PHP Programming";
$b="1234567890";
echo"$a <br> $b";
?>
30
ั ลักษณ์ \n หมายถึงการขึน
• สญ
้ บรรทัดใหม่ เป็ น escape
character ตัวหนึง่ (สาหรับตัวอืน
่ ๆ โปรดดูในตาราง)
เมือ
่ พิมพ์ข ้อความเป็ นเอาพุต และโปรดสงั เกตว่า
้
สาหรับการใชงานภายในเอกสาร
HTML การขึน
้ บรรทัด
ใหม่โดยใช ้ \n จะแตกต่างจากการขึน
้ บรรทัดโดยใช ้
Escaped charac
<BR> ใน HTML
\r carriage
\t horizontal ta
\\ backslash
\$ dollar sign
\" double-quote
%% percent
31
ตัวแปร Array
• เป็ นตัวแปรชุดทีม
่ ก
ี ารเก็บค่าตัวแปรทีม
่ ี ชนิดของข ้มูล
่ เก็บ รายชอ
ื่ ของพนักงาน อายุ เงินเดือน
เหมือนกัน เชน
– Arrary 1 มิต ิ
$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
• การประกาศตวั แปร
$a[3]="Adisorn";
$a[5]
ิ 6 ตัวคือ
จะมีสมาชก
$a[0],$a[1],$a[2],$a[3],$a[
4],$a[5]
32
• การใชค้ าสงั่ each และ list สาหรับ
associative array ถ ้าเรา
จะเข ้าถึงข ้อมูลแต่ละคูท
่ ถ
ี่ ก
ู เก็บอยูใ่ น
associative array เราอาจจะใช ้
Sample
ั each() และ list() ตาม
เรี
ยกผ่านฟั งก์ชน
<?วอย่างต่อไปนี้
ตั
Out Put
unset($a);
$a = array( "a" => 10, "b" => 20, "c" => 30 );
while (list($key,$value) = each($a))
{
echo "$key=$value <BR>\n";
}
?>
a=10
b=20
c=30
33
– Arrary 2 มิติ
$a[0][0]="Somchai";
$a[0][1]="Werachai";
$a[1][2]="Surachai";
• การประกาศตัวแปร
$a[2][2]
จะมีสามชิก 8 ตัว คือ
$a[0][0],$a[0][1],$a[0][2],$a[1][0],$a[2][0],$
a[1][1],$a[1][2],$a[2][2],
34
– Array 3 มิต ิ
$a[0][0][0]="Somchai";
$a[0][1][2]="Werachai";
$a[1][2][3]="Surachai";
Out Put
Sample
<?
$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
$a[3]="Adisorn";
$b[0]=20;
$b[1]=21;
$b[2]=22;
$b[3]=23;
for($i=0;$i<=3;$i++)
{
echo"name : $a[$i] Old $b[$i] <br>";
}
?>
35
การตรวจสอบว่าตัวแปร
การตรวจสอบชนิดของตัวแปร
การตรวจสอบว่าตัวแปรนี้มีการกาหนดค่าหรือไม่
gettype($var-name);
ตัวอย่างเช่น
isset($var-name);
ตัวอย่างเช่น
<?
$a=1234;
echo gettype($a);
?>
<?
$a=1234;
if (isset($a))
{
echo"มีการกาหนดค่าตัวแปร";
}
else
{
echo“ไม่มีการกาหนดค่าตัวแปร";
}
?>
36
การตรวจสอบว่าตัวแปร
การตรวจสอบว่าตัวแปรนี้มีคา่ ว่างหรือไม่
empty($var-name);
<?
$a=1234;
if (empty($a))
{
echo"ตัวแปรมีคา่ ว่าง";
}
else
{
echo"ตัวแปรมีคา่ ไม่วา่ ง";
}
?>
37
ค่าคงที่ Constant
่ าหนดแล้ว สามารถเรียกใช้งานได้ทุก
• คือ ค่าทีก
่
้
ๆ ครง้ั ทีเราประกาศขึ
นมา
สามารถแบ่งออกได้
เป็ น 2 ประเภทคือ
แสดงข ้อผิดพลาดที่ parse ตรวจหาไม่พบ
่
่
–
1.ค่
า
คงที
PHP
ก
าหนดมาให้
เป็
นค่
า
ที
เรา
E_WARNING
แสดงเงือ
่ นไขให ้ทราบ และทางานต่อไป
่
สามารถนาไปใช้
งานได้
ทน
ั ที
E_PARSE
การ parse ทาให
้เกิดข ้อผิดพลาดใน
Program ทีไ่ ม่สามารถตรวจพบ
E_ERROR
E_NOTICE
ิ ต
เมือ
่ เกิดความผิดพลาด การเอ็กซค
ิ ย
์ ังมีตอ
่ ไป
_FILE_
ื่ ไฟล์ทท
แสดงชอ
ี่ างานอยู่ เพือ
่ ตรวจสอบหาข ้อผิดพลาด
_LINE_
แสดงจานวนบรรทัดของไฟล์ เพือ
่ ตรวจสอบหาข ้อผิดพลาด
PHP_VERSION
้
แสดง V. ของ PHP ทีใ่ ชงานอยู
่
PHP_OS
้ น Server
แสดงระบบปฏิบต
ั ก
ิ ารทีใ่ ชเป็
TRUE
ตรวจสอบค่าจริง
FALSE
ตรวจสอบค่าเท็จ
38
ค่าคงที่ Constant (ต่อ)
่ ผู
่ ใ้ ช้กาหนดขึนเอง
้
– 2.ค่าคงทีที
เราสามารถกาหนดค่าคงที่ เหมือนกับการประกาศตัว
แปร
รู ปแบบ
Define(Constant-name,Value)
่ Constant-name ชอ
ื่ ของค่าคงที่ Value ค่าทีจ
เมือ
่ ะ
กาหนดให ้
เช่น
DEFINE("name","Werachai Nukitram");
DEFINE("old","21");
39
DEFINE("add","Surin");
Operator และ การเปรียบเทียบ
ทางคณิต ฯ
ใน PHP มีโอเปอเรเตอร์ด ้วยกันทัง้ หมด 7 ชนิดด ้วยกัน
้ านัน
ดังนี้ จะยกตัวอย่างทีจ
่ าเป็ นทีเ่ ราต ้องนาไปใชเท่
้ ครับ
1.Arithmetic Operators
โอเปอเรเตอร์ทางคณิตศาสตร์
2.String Operators
โอเปอเรเตอร์เชิงข้อความ
3.Assignment Operators
โอเปอเรเตอร์กาหนดค่า
4.Bitwise Operators
โอเปอเรเตอร์เปรียบเทียบบิต
5.Logical Operators
โอเปอเรเตอร์เชิงตรรกศาสตร์
6.Comparison Operators
โอเปอเรเตอร์เชิงเปรียบเทียบ
7.Operator Precedence
โอเปอเรเตอร์เพิม
่ -ลดค่า
40
Operator และ การเปรียบเทียบทาง
คณิต ฯ (ต่อ)
• Arithmetic Operators โอเปอเรเตอร์ทางคณิตศาสตร์
ตัวอย่าง
ความหมาย
ผลลัพธ์
$a + $b
บวก
ผลบวกของ $a และ $b.
$a - $b
ลบ
ผลลัพธ์จาก $b ลบออกจาก $a.
$a * $b
คูณ
ผลคูณของ $a และ $b.
$a / $b
หาร
ผลหารของ $a และ $b.
$a % $b
หารเอาเศษ
เศษจากการหารของ $a หารโดย $b.
41
Operator และ การเปรียบเทียบทาง
คณิ ต ฯ (ต่อ)
• String Operators เป็ น โอเปอเรเตอร์ทใี่ ชกั้ บ
ข ้อความซงึ่ จะใช ้ (.) เพียง โอเปอเรเตอร์เดียว
ตัวอย่าง
<?
$a = "PHP";
$b = "Programming";
$c = $a.$b;
echo"$c";
?>
Out Put
PHPProgramming
42
Operator และ การเปรียบเทียบทาง
คณิ ต ฯ (ต่อ)
•Assignment Operators โอเปอเรเตอร์กาหนดค่า
โอเปอเรเตอร์พน
ื้ ฐานคือ "=" คือคุณจะต ้องคิดว่า
้ อของโอเปอเรเตอร์คอ
ค่าทางซายมื
ื ผลลัพธ์จาก
คาสงั่ ทีก
่ ระทาทางขวามือ
$a = 3;
$a += 5; // $a = 8, มีความหมายว่า $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // $b = "Hello There!",เหมือนกับ
$b = $b . "There!";
43
Assignment Operators(ต่อ)
เครือ
่ งหมาย
ความหมาย
รูปแบบ
ผลลัพธถ้ากาหนดให้ $a=2
$a=1
1
=
กาหนดค่า
+=
เพิม
่ ค่า
$a += 1
3
-=
ลบค่า
$a -= 1
1
*=
คูณค่า
$a *= 1
2
/=
หารค่า
$a /= 1
2
44
Operator และ การเปรียบเทียบทาง
คณิต ฯ (ต่อ)
• 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 ตัวใดตัวหนึ่งเป็ จริง
45
Operator และ การเปรียบเทียบทาง
คณิต ฯ (ต่อ)
• 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.
46
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
1. If...else สามารถใช้ได้ 2 วิธคือ
Sample1.php
<?
$a = 1;
if ($a==1)
{
echo"a=1 OK";
}
?>
Out Put
a=1
<?
if ($x == 0) {
echo $x;
echo " is zero.<BR>\n";
}
else if ($x > 0) {
echo $x;
echo " is positive.<BR>\n";
}
else {
echo $x;
echo " is negative.<BR>\n";
}
?>
47
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 2.if..elseif..esle
<?
$a = 4;
if ($a==1)
{
echo" a = 1 OK ";
}
elseif ($a==2)
{
echo" a = 2 OK";
}
elseif ($a==3)
{
echo" a = 3 OK ";
}
else
{
echo" a Not OK ";
}
?>
Out Put
a Not OK
48
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 3.Switch Case
<?
$a = 3;
Switch ($a)
{
case 1 : echo "a = 1 OK";
break;
case 2 : echo "a = 2 OK";
break;
case 3 : echo "a = 3 OK";
break;
case 4 : echo "a = 4 OK";
break;
default : echo " a Not OK";
}
?>
out Put
a = 3 OK
49
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 3.Break
คาสงั่ break และ continue ภายในลูปอย่างทีใ่ ช ้
กันในภาษาซ ี ก็นามาใชกั้ บภาษา PHP ได ้
่
ตัวอย่างเชน
• 4.Continue
เป็ นคาสงั่ กระโดการทางานรอบใหม่ คือ เมือ
่
โปรแกรมเจอคาสงั่ นีจ
้ ะกระโดดทางานใหม่ทันที
50
Sample5.php
<?
unset($a);
$a[]=1;
$a[]=2;
$a[]=3;
$a[]="red";
$a[]="green";
$a[]="blue";
$a[]="none";
$i=0;
$found="not found";
for ($i=0; $i < count($a); $i++) {
if ( is_long($a[$i]) ) { // skip all integer elements
continue;
}
if ($a[$i] == "blue") {
$found=$a[$i];
break;
} }
echo $found,"<BR>\n";
?>
51
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 5.Require และ Include
คาสงั่ ทัง้ สองเอาไว ้แทรกเนือ
้ หาจากไฟล์อน
ื่ ทีต
่ ้องการ ข ้อ
แตกต่างระหว่าง include และ require อยูต
่ รงทีว่ า่ ในกรณี
ื่ ต่างๆกันมากกว่าหนึง่ ครัง้ โดยใช ้
ของการแทรกไฟล์ใชช้ อ
ลูป คาสงั่ require จะอ่านเพียงแค่ครัง้ เดียว คือไฟล์แรก
และจะแทรกไฟล์นเี้ ท่านัน
้ ไปตามจานวนครัง้ ทีว่ นลูป
ในขณะที่ include สามารถอ่านได ้ไฟล์
า่ งๆกันตามจานวน
<?
ไฟล์ตfile1.inc
Hello world 1<BR>
$filename[]="file1.inc";
ครัง้ ทีต
่ ้องการ
$filename[]="file2.inc";
for ($i = 0; $i < 2; $i++) {
include $filename[$i];
}
?>
ไฟล์ file2.inc
Hello world 2<BR>
52
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 6.Redirect
เป้ นการย ้ายการทางานของ Page ปั จจุบน
ั เพือ
่
ไปไฟล์เป้ าหมาย
header('location:file.php');
• 7.or
เงือ
่ นไข OR
if (($name == "") || ($named == "")){
ข ้อกาหนดเงือ
่ นไข เหตุการณ์เป็ นจริงเหตุการณ์
ใดเหตุการณ์หนึง่ ก็คอ
ื พบข ้อมูลตัวแปรตัวใดตัว
หนึง่ โปรแกรมจึงจะทางาน
53
ิ ใจ
เงือ
่ นไขสายงานเพือ
่ การตัดสน
(ต่อ)
• 9.And
ข ้อกาหนดเงือ
่ นไข
เหตุการณ์จะต ้องเป็ นจริงทัง้ สองเหตุการณ์ ก็คอ
ื
พบข ้อมูลตัวแปรทัง้ สอง โปรแกรมจึงจะทางาน
if (($name == "") && ($named == "")){
54
ลูปและการทาซา้
• For
้
จะทางานจนเงื่อนไขนันเป็
นเท็จ ถึงจะ
กระโดดออกจากลู ป
<?
For ($a=1;$a<=5;$a++)
{
echo"<font size=$a> ข ้อความใหญ่ขน
ึ้ และจะหยุด
ทางานเมือ
่ a=5 <br> ";
}
?>
55
ลูปและการทาซา้ (ต่อ)
• While
จะพิจารณาเงื่อนไขแล้วค่อยทา ถ้าเงื่อนไขเป็ น
จริงจะทา ถ้าเท็จ จะกระโดดออกจากลู ปทันที
Sample3.php
<?
$a=1;
while ($a<=5)
{
่ a=5
echo"<font size=$a> ข้อความใหญ่ขน
ึ ้ และจะหยุดทางานเมือ
$a++;
}
?>
56
ลูปและการทาซา้ (ต่อ)
• Do..While
ทาก่อนแล้วค่อยพิจารณาเงื่อนไข ถ้าเงื่อนไข
เป็ นเท็จ จะกระโดดออกจากลู ปทันที Sample5.php
<?
$a=1;
do
{
echo"<font size=$a> ข ้อความใหญ่ขน
ึ้ และจะหยุดทางานเมือ
่
a=5 <br> ";
$a++;
}while($a<=5)
?>
** ถ้าใช้ do-while จะต้องมีการทาคาสั่ง ภายในลูปหนึ่งครัง้ เสมอ แม้วา่ เงือ
่ นไขโดยเริม
่ ต้นจะเป็ นเท็จก็ตาม
ซึง่ แตกต่างจาก while-do ถ้าเงือ
่ นไขเป็ นเท็จตัง้ แต่เริม
่ ก็จะไม่มก
ี ารทาคาสั่งทีอ่ ยูใ่ นลูป
อีกแบบหนึ่งสาหรับการวนลูปคือใช้ for-loop ทาได้ตามตัวอย่างต่อไปนี้
57
ตัวอย่างเพิม
่ เติม
• การเทคนิคการแสดงรูปภาพแทนตัวเลข เทคนิคนี้
เราจะนาไปทาเป็ น Counter แบบง่ายๆ
Sample6.php
<?
$count="10421825";
$len=strlen($count);
echo "Number : ";
for($n=0;$n<$len;$n++){
$digit=substr($count,$n,1);
echo "<IMG SRC=images/".$digit.".Gif BORDER=0 >";
} ?>
นาไฟล์ตวั เลข .gif ไปไว ้ทีโ่ ฟลเดอร์ images
58
แบบฝึ กหัด
่
่
เขียนโปรแกรมเพือแสดงตารางราชื
อจาก
Array
ื่ Member เก็บข ้อมูลชอ
ื่ -นามสกุล
Array ชอ
จากนัน
้ แสดงให ้ได ้ผลลัพธ์ดงั ภาพด ้านล่าง
ลาดั
บ
1
2
3
4
่
ชือ-นามสกุ
ล
สมชาย บุญมี
ั ดิ์ งามแท ้
สมศก
ดวงมณี มีทอง
สายใจ สุขสม
ใช้ LOOP
แล้วดึงข้อมูลใน Array
มาแสดง...พร้อมสลับสี
แถวด้วย
59