ตัวควบคุมการทำงาน Control Structures
ในการเขียนโปรแกรมคอมพิวเตอร์นั้น
คอมพิวเตอร์จะทำงานจากบนลงล่าง แต่ถ้าหากต้องการให้มีการกระโดด เลือกเส้นทาง
หรือวนกลับเราจะมีตัวควบคุมการทำงานดังต่อไปนี้
if?else?elseif
คำสั่ง if เป็นคำสั่งกำหนดให้พิจารณาเงื่อนไข
ว่าค่าที่ได้เป็นจริง หรือเป็นเท็จ แล้วจึงเลือกประมวลผลตามนั้น
ตัวอย่างที่ 1
<?
$a = 30;
$b = 20;
if($a > $b){ print ?a มากกว่า
b?; }
?>
|
ตัวอย่างที่ 2
<?
$a = 30;
$b = 20;
if($a > $b){
print ?a มากกว่า b?;
}
else{
print ?a ไม่มากกว่า b?;
}
?>
|
ตัวอย่างที่ 3
<?
$a = 30;
$b = 20;
if($a > $b){
print ?a มากกว่า b?;
}
elseif($a == $b){
print ?a เท่ากับ b?;
}
else{
print ?a น้อยกว่า b?;
}
?>
|
while
คำสั่ง while เป็นคำสั่งกำหนดให้ทำงานวนรอบ
โดยพิจารณาเงื่อนไขก่อน ถ้าค่าที่ได้เป็นจริง จึงเลือกประมวลผลตามนั้น
ตัวอย่างที่ 1
$i = 1;
while($i <= 10){
print $I++;
print ?<BR>?;
}
ตัวอย่างที่ 2
$i = 1;
while($i <= 10):
print ?$i<br>?;
i++;
endwhile;
ทั้งสองตัวอย่างนั้นให้ผลเหมือนกัน
ต่างกันที่รูปแแบการใช้ while
do..while
คำสั่ง do while เป็นคำสั่งกำหนดให้ทำงานวนรอบ
โดยทำก่อน แล้วค่อยพิจารณาเงื่อนไข ถ้าค่าที่ได้เป็นจริง จึงเลือกประมวลผลวนรอบต่อไป
ตัวอย่างที่ 1
$i = 1;
do{
print ?$i++<BR>?;
while($i <= 10);
for
คำสั่ง for เป็นคำสั่งกำหนดให้ทำงานวนรอบ
โดยตั้งค่าก่อน แล้วพิจารณาเงื่อนไข ถ้าค่าที่ได้เป็นจริง จึงเลือกประมวลผลวนรอบต่อไป
ตัวอย่าง
for($i=0;$i<=10;$i++){
print ?$i?;
print ?<BR>?;
}
ข้อสังเกต ภายใน for(?)
$i = 0; เป็นการกำหนดค่าเริ่มต้น
$i <= 10; เป็นการกำหนดเงื่อนไข
$i++; เป็นการเพิ่มค่าที่ละ
1
break
คำสั่ง break เป็นคำสั่งกำหนดให้หลุดออกจากเงื่อนไขทันที
ตัวอย่าง
$I = 0;
while($i<=50){
if($i==20){break;}
print ?$i ?;
print ?<BR>?;
$i++;
}
สรุป loop while สั่งพิมพ์
0 ถึง 50 แต่เนื่องจากมีการตรวจสอบว่า I เท่ากับ 20 แล้วออกจากการทำงาน จึงพิมพ์แค่
19
continue
คำสั่ง continue เป็นคำสั่งควบคุมในการทำงานวนรอบ
โดยกำหนดให้เริ่มรอบใหม่ทันที
ตัวอย่าง
for($i=0;$i<=50;$i++){
if($i==2){continue;}
print ?$i <BR>?;
}
สรุป loop for สั่งพิมพ์ 0
ถึง 50 แต่เนื่องจากมีการตรวจสอบว่า i เท่ากับ 2 แล้วเริ่มใหม่ทันที จึงพิมพ์เฉพาะเลขคู่
switch
คำสั่ง switch เป็นคำสั่งที่ใช้เลือกเงื่อนไขแบบเฉพาะเจาะจง
ซึ่งจะสะดวกกว่าใช้ if
ตัวอย่าง
$I=2;
switch($i){
case 0:
print ?zero?;
break;
case 1:
print ?one?;
break;
case 2:
print ?two?;
break;
default:
print ?No 0,1 or 2?;
}
include
คำสั่ง include เป็นคำสั่งที่ใช้เรียก
PHP ไฟล์อื่นเข้ามาทำงาน
ตัวอย่าง
$fs = array(?a.inc?, ?b.inc?, ?c.inc?,
?d.inc?);
for($I=0;$i<count($fs);I++){
include $fs[$I]
}
require
คำสั่ง require เป็นคำสั่งที่ใช้เรียก
PHP ไฟล์อื่นเข้ามาทำงาน แต่ไม่สามารถเรียกภายใต้การทำงานวนรอบได้
ตัวอย่าง
<?
Require (?header.inc?);
?>
Function
ฟังก์ชั่นนั้นเป็นการสั่งให้กระทำการอย่างใดอย่างหนึ่ง
PHP มีฟังก์ชั่นภายในให้เราได้เรียกง่ายดาย และเราสามารถสร้างขึ้นมาใช้งานเองได้ด้วย
โดยทั่วไปมีด้วยกันอยุ่ 2 แบบ
1. ฟังก์ชั่นที่ไม่มีการส่งค่าระหว่างฟังก์ชั่น
ตัวอย่าง
function sign(){
print ?http://www.sourcecode.in.th?;
print ?contact : webmaker2k@hotmail.com?;
print ?Thank You?
}
sign();
2. ฟังก์ชั่นที่มีการส่งค่าระหว่างฟังก์ชั่น
ตัวอย่าง
function square($a){
return $a * $a;
}
$i = 3;
echo square($i);
ฟังก์ชั่นอื่นๆ ที่สามารถเรียกใช้ได้
ชื่อฟังก์ชั่น
|
คำอธิบาย - รายละเอียด
|
Date
|
แสดง วัน/เดือน/ปี เวลา ปัจจุบัน
เช่น
<? Print date(?d/m/Y H:I:s?);
?>
จะได้ 28/04/2002 14:47:23
มีรหัสอักษรในการกำหนดรูปแบบดังนี้
a แสดง am ? pm แบบตัวพิมพ์เล็ก
A แสดง am ? pm แบบตัวพิมพ์ใหญ่
d แสดงวันที่แบบสองหลัก
เช่น 02
D แสดงชื่อวันภาษาอังกฤษแบบย่อ
เช่น Sun
h แสดงชั่วโมงแบบสองหลัก
01 ? 12
H แสดงชั่วโมงแบบสองหลัก
00 ?23
g แสดงชั่วโมงแบบไม่มี
0 นำหน้า 1 ? 12
G แสดงชั่วโมงแบบไม่มี
0 นำหน้า 0 ? 23
i แสดงนาทีแบบสองหลัก
00 ? 59
j แสดงวันที่แบบไม่มี
0 นำหน้า 1 ? 31
|
ชื่อฟังก์ชั่น
|
คำอธิบาย ? รายละเอียด
|
getdate
|
แสดง วัน/เดือน/ปี เวลา ปัจจุบัน
เช่น
<?
$today = getdate();
echo ?$today[month] $today[day],
$today[year]?
?>
จะได้ April 23, 2002
เป็นอะเรย์ที่มีสมาชิกดังนี้
$today[seconds] เก็บค่าวินาที
$today[minutes] เก็บค่านาที
$today[hours] เก็บค่าชั่วโมง
$today[mday] เก็บค่าวันที่
$today[wday] เก็บค่าลำดับวันในหนึ่งสัปดาห์
0 ? 6
$today[weekday] เก็บค่าวันเช่น
Sunday
$today[yday] เก็บค่าลำดับวันในหนึ่งปี
0 ? 365
$today[mon] เก็บค่าเดือน
$today[month] เก็บค่าเดือนแบบเต็ม
$today[year] เก็บค่าปี
|
การทำงานกับวันเวลานั้น ยังมีฟังก์ชั่นการทำวานอื่นอีกมากมาย
สามารถหาอ่านได้จาก Manual ของ PHP ที่เว็บไซต์ http://www.php.net/manual/
String Functions เป็นฟังก์ชั่นที่ใช้จัดการข้อมูลประเภทข้อความ
ชื่อฟังก์ชั่น
|
คำอธิบาย ? รายละเอียด
|
chr()
|
แปลง ASCII เป็นตัวอักษร
|
echo
|
แสดงข้อความ
|
explode()
|
แบ่งข้อความโดยกำหนดตัวอักขระที่จะใช้เป็นตัวแบ่ง
ข้อความที่ถุกแบ่งย่อยจะอยู่ในสภาพอะเรย์ เช่น
$a = ?A B C D E F?;
$b = explode(? ?,$a);
echo ?$b[0], $b[1]?;
|
print()
|
แสดงข้อความ คล้ายกับ echo
|
sprintf()
|
แสดงข้อความ แต่สามารถกำหนดรูปแบบได้
เช่น
$a = 5.56;
$f = sprintf(?%01.2f?, $a)
print $f;
|
strlen()
|
หาจำนวนอักขระในข้อความ เช่น
$txt = ?Hello?
print strlen($txt);
|
strpos()
|
หาตำแหน่งแรกของข้อความที่ต้องการ
เช่น
$a = ?I am a boy.?;
print strpos($a, ?boy?);
|
strrev()
|
ใช้ในการกลับข้อความ เช่น
print strrev(?Hello?);
|
strstr()
|
ใช้ค้นหาข้อความที่ต้องการ เช่น
$a = ?I am a bad boy.?
$f = ?bad?;
if(strstr($a,4f)){print ?Found?;}
else{print ?not Found.?;}
|
ชื่อฟังก์ชั่น
|
คำอธิบาย ? รายละเอียด
|
strtolower()
|
เปลี่ยนข้อความเป็นตัวพิมพ์เล็กทั้งหมด
เช่น
print strtolower(?I AM THE
WEB MAKER.?);
|
strtoupper()
|
เปลี่ยนข้อความเป็นตัวพิมพ์ฬฆย๋ทั้งหมด
เช่น
print strtolower(?I am the
moon walker.?);
|
str_replace()
|
เปลี่ยนข้อความ ด้วยข้อความที่ต้องการ
เช่น
print str_replace(?is?,?are?,?Who
is you.?);
|
trim()
|
ตัดช่องว่าหน้า และหลังข้อความ
เช่น
print trim(? How are you? ?);
|
ucfirst()
|
พิมพ์ต้นประโยคด้วยตัวพิมพืใหญ่
เช่น
print ucfirst(?what?s up??)
|
ucwords()
|
พิมพ์ตัวอักษรตัวแรกด้วยตัวพิมพ์ใหญ่
เช่น
print ucwords(?where are you,
last weekend?)
|
Mail Funtion เป้นฟังก์ชั่นที่ใช้ติดต่อกับระบบ
Mail มีรูปการใช้งานที่ง่ายมาก
เช่น
<?
$address = webmaker2k@hotmail.com;
$subject = ?Just test?;
$message = ?Hello, How are
you? I?m fine.?;
$from = nobody@yahoo.com;
mail($address,$subject,$message,$from);
print ?Mail sent already.?;
?>
|
|