Professional Documents
Culture Documents
2010-01-21 Week9
2010-01-21 Week9
ต ัวดําเนินการเปรียบเทียบ
การเปรียบเทียบตัวเลขสําหรับสร้างเงือนไข มีตวั ดําเนินการดังนี
== เท่ากับ
> มากกว่า
>= มากกว่าหรือเท่ากับ
< น้อยกว่า
<= น้อยกว่าหรือเท่ากับ
!= ไม่เท่ากับ
การสร้างเงือนไข
เราสามารถสร้างเงือนไขจากการเปรียบเทียบได้ซบั ซ้อนมากขึนโดยใช้ตวั ดําเนินการ "และ" "หรือ" "ไม่" มาประกอบ
ตัวอย่างเช่น
($x == -1) || ($x==1)
เท็จ
เงือนไข
จริ ง เท็จ จริ ง
คําสังถัดไป
ข้อความสัง SWITCH - CASE
การใช้ switch จะตามด้วยตัวแปรทีต้องการตรวจสอบค่า ถ้า
ตรงกับ case ไหน จะทําตามคําสังใน case นันไปจนกว่าจะ
เจอคําสัง break แต่ถา้ หากเปรียบเทียบแล้วไม่ตรงกับ case ใด
ๆ เลย จะทําในคําสัง default
รูปแบบ switch (variable)
{ case value1 : statement;
break;
case value2 : statement;
break;
case valueN : statement;
break;
default : statement;
}
ตัวอย่าง
<html>
<body>
<?
$day = date("l");
switch ( $day) {
case "Monday" : echo "วันนีวันจันทร์" ;break;
case "Tuesday" : echo "วันนีวันอังคาร" ;break;
case "Wednesday" : echo "วันนีวันพุธ" ;break;
case "Thursday" : echo "วันนีวันพฤหัส ทํางานอีกวันก็หยุด
แล ้ว" ;break;
case "Friday" : echo "วันนีวันสุดท ้ายของการทํางาน"
;break;
default : echo "เฮ.. วันนีวันหยุด นอนอยูบ
่ ้าน" ;
}
?>
</body>
</html>
เปรียบเทียบการใช้ SWITCH และ IF
เท็จ ั
คําสงที 1
เงือนไข
จริง
เงือนไข
จริง
ั
คําสงที 1
เท็จ
ั
คําสงที 2
ั
คําสงที 2
while do..while
การทําขันตอนซําหรือวนลูป (ต่อ)
o เมือต้องการให้เกิดการทํางานซํา
o จะทํางานเมือเงือนไขเป็ นจริง
o ไม่รวู ้ ่าจะต้องทําซํากีครัง (แต่ถึงรูจ้ ํานวนครังทีจะวนซํา ก็
สามารถใช้ while และ do..while ได้ เพียงแต่ไม่เป็ นทีนิ ยม
เพราะจะใช้ for แทน)
o คําสังทีอยู่ใน loop ต้องส่งผลให้เงือนไขทีเช็คมีโอกาสเป็ นเท็จ
(ออกจาก loop ได้) มิเช่นนันจะเกิดเหตุการณ์ loop ไม่รจู ้ บ
ข้อความสัง WHILE
เป็ นข้อความสังวนลูปทีง่ายทีสุดใน PHP โดยการทําการงานจะตรวจสอบ
เงือนไขก่อน ถ้าเงือนไขเป็ นจริงจะทําข้อความสังทีอยูใ่ นลูป แต่ถา้ เงือนไขเป็ น
เท็จจะออกจากลูป
รูปแบบแบบที 1
while(condition) {
// statement block.
}
รูปแบบที 2
while(condition) :
// statement block.
Endwhile ;
ต ัวอย่าง
<html>
<body>
<?
$size = 1;
while ($size<7)
{
print("<font size=$size face='arial'
color=blue>HELLO<br>");
$size++;
}
?>
</body>
</html>
ต ัวอย่าง
<html>
<body>
<font size=4 face='arial'>
<?
$str="A";
while ($str<"Z")
{
echo $str;
$str++;
}
?>
</font>
</body>
</html>
ข้อความสัง DO...WHILE
คล้าย while loop แต่จะทําการตรวจสอบเงือนไข ตอนท้าย โดยจะ
ทํางานใน do while ลูป อย่างน้อย 1 ครังตอนเริมต้นแล้วจึงตรวจสอบ
เงือนไข ถ้าเงือนไขจริงจะวนลูปและออกจากลูปเมือเงือนไขเป็ นเท็จ
รูปแบบ
do {
statement ;
} while(condition);
ต ัวอย่าง
<html>
<body>
<font size=4 face='arial'>
<?
$a=1;
do{
echo $a," ";
$a++;
}while ($a<=20);
print "BREAK OK!";
?>
</font>
</body>
</html>
ข้อความสัง FOR
o for เป็ นคําสังวนซําทีใช้แก้ปัญหาโจทย์ลกั ษณะ ทีมีการ
ทํางานเดิมซําๆกันหลาย ๆ ครังโดยทีรูจ้ ํานวนรอบที
แน่ นอน
o รูปแบบแบ่งออกเป็ น 3 ส่วน คื อ
o ส่วนกําหนดค่าตัวนับ เป็ นการกําหนดค่าเริมต้นให้กบั ตัว
แปร เพือใช้ควบคุมการวน loop
o ส่วนทีตรวจสอบเงือนไขเพือตัดสิ นว่าจะวนซํา หรือไม่
o ส่วนของการจัดการค่าตัวนับของการวนซํา เป็ นการเพิม
ค่าหรือการลดค่าให้ตวั แปรทีควบคุม loop
ข้อความสัง FOR
for ( $i=1 ; $i <= 3 ; $i++) {
echo $i.“Hello”;
} For i=1 to 3
พิมพ์คา่ i
พิมพ์ Hello
ข้อความสัง FOR
o การเพิมค่าในแต่ละรอบจะเป็ นเท่าไรก็ได้ เช่น
for($x = 0;$x<=100;$x+= 5)
o ในส่วนของการเปลี ยนค่า นอกจากการเพิมค่า (increment) สามารถ
กําหนดให้มีการลดค่าของตัวแปรทีใช้ในการวนรอบได้
for($x = 100;$x>0;$x--)
o ตัวแปรทีใช้ในการวนรอบอาจกําหนดให้เป็ นชนิ ด char ได้
for($ch = ‘a’;$ch<=‘z’;$ch++)
break จะใช้หยุดการทํางานของวนรอบ loop
for ($i=1; $i<11; $i++)
{
if ($i == 6) break;
echo "Hello...ครงที
ั $i <br>";
}
ข้อความสัง FOR
$score คะแนน นร. คนที 1 คะแนน นร. คนที 2 ... คะแนน นร. คนที 20
คนที 20 คะแนน CSS327 ของ คะแนน CSS328 ของ คะแนน CSS329 ของ
ึ ษา คนที 20
นักศก ึ ษา คนที 20
นักศก ึ ษา คนที 20
นักศก
ตัวแปรชุดข้อมูล (ARRAY) ใน PHP
อาร์เรย์ 2 มิติ (Two Dimensional Array)
เช่น การประกาศตัวแปร $score เพือใช้เก็บข้อมูลคะแนนวิชา
CSS327, CSS328, CSS329 ของนักศึกษา 20 คน
จะได้ภาพของตัวแปร ดังรูป
$score [0] [1] [2]
[0] $score [0][0] $score [0][1] $score [0][2]
… … …
<?
array 35
$arr = array( 5,6,7,4,3,2,10,3,440 );
$all = count( $arr );
for ($i=0;$i<$all;$i++){
print "$arr[$i] ";
}
?>
ตัวอย่าง
$arr=arrray(10,20,30.30,"PHP","PROGRMMING");
array 36
for($r=0; $r < count($arr) ; $r++){
echo (" index $r = $arr [$r]<br>");
}
ั RANGE
การสร ้างอะเรย์โดยใช้ฟังก์ชน
รูปแบบ array range(int low, int high)
ต ัวอย่าง
<?
array 37
$arr = range( 6,10);
$all = count( $arr );
for ($i=0;$i<$all;$i++){
echo "arr[" .$i. "] = ";
echo $arr[$i] ;
echo "<BR>";
}
?>
การเข ้าถึงข ้อมูลในอะเรย์
การอ้างตําแหน่งของอินเด็กซ ์ เชน
่
$arr[3]="php";
array 38
ใช ้ ข้อความสง ั for เชน
่
for ($i=0;$i<4;$i++){
echo $arr[$i]."<BR>";
}
<HTML>
<HEAD><TITLE>Figure 5-2</TITLE></HEAD>
<BODY>
<?
$Cities[] = "San Francisco";
City 0 is San Francisco.
array 39
$Cities[] = "Los Angeles"; City 1 is Los Angeles.
$Cities[] = "New York"; City 2 is New York.
$Cities[] = "Martinez";
//count number of elements City 3 is Martinez.
$indexLimit = count($Cities);
// print out every element
for($index=0; $index < $indexLimit; $index++)
{
print("City $index is $Cities[$index]. <BR>\n");
}
?>
</BODY>
</HTML>
การใช้อะเรย์หลายมิติ (MULTIDIMENSIONAL
ARRAY)
กําหนดชือตัวแปรแล้วตามด้วยเครือง [..][..] สําหรับอะเรย์สองมิติและ [.. ][.. ] [..
] สําหรับอะเรย์สามมิติ
array 40
$arr_2[1][1] = 4000;
//$arr_2เป็ นอะเรย์สองมิติ
$arr_3[1][1][1] = 2000;
//$arr_3เป็ นอะเรย์สามมิติ
การใช้อะเรย์หลายมิติ (ต่อ)
$dim = 3;
for ($row=0; $row <= $dim; $row++) {
array 41
for ($column=0; $column <= $dim; $column++) {
$myarray2[$row][$column] = 4*$row + $column;
echo $myarray2[$row][$column]," ";
}
echo "<BR>\n";
}
อะเรย์แบบคู่
array 42
อะเรย์แบบคู่ (ต่อ)
สมมุติวา่ "red" ให้แทนค่า 0xff0000 "green" ให้แทนค่า 0x00ff00 และ "blue" ให้
แทนค่า 0x0000ff โดยเก็บไว้ในอะเรย์ชือ $color_table
ั ใช ้
คําสงที
array 43
$color_table["red"] = 0xff0000;
$color_table["green"] = 0x00ff00;
$color_table["blue"] = 0x0000ff;
$color_name= "red";
echo "value = ".$color_table[ $color_name]."<BR>\n";
อะเรย์แบบคู่ (ต่อ)
ั array ()
สร้างอะเรย์แบบคูไ่ ด้โดยใช้ฟังก์ชน
ั array ()
จากตัวอย่างทีแล ้วเราสามารถสร้างอะเรย์แบบคูไ่ ด้โดยใช้ฟังก์ชน
ดังนี
array 44
$color_table = array(
"red" => 0xff0000,
"green" => 0x00ff00,
"blue" => 0x0000ff
);
ตัวอย่าง
<?
$word[a] = "Ant";
$word[b] = "Bat";
array 45
$word[c] = "Cat";
$word[d] = "Dog";
print( "$word[d] , $word[a]");
print ("<BR>");
print( "$word[a] , $word[b]");
?>
หรือ
<?
$word = array( "a" => "Ant" , "b" => "Bat" , "c" => "Cat" , "d" => "Dog" );
print( "$word[d] , $word[c]");
print ("<BR>");
print( "$word[b] , $word[a]");
?>
ตัวอย่าง
จากตัวอย่าง a,b, c, d จะเรียกว่า key และ Ant, Bat ,
Cat, Dog จะเรียกว่า Value
array 46
การแสดงค่า key และ value ของอะเรย์แบบคูจ ่ ะใช ้
ฟั งก์ชน ื key และ value เชน
ั ชอ ่
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawat" => 30 , "chuchai" => 16 );
$name =key($keep_age);
$age =current($keep_age);
print ("Age of <u>$name</u> is $age");
?>
เราสามารถสร้ อะเรย์แแบบเชื
เราสามารถสร้างงอะเรย์ บบเชือมโยงเป็ นสองมิติได้ เช่น
<?
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
array 47
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland“ => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>
การท่องไปในอะเรย์แบบคู่
ี กเก็บอยูใ่ นอะเรย์แบบคู่
ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ทถู จะใช้วิธี
เรียกผ่านฟั งก์ชนั each() และ list()
array 48
ฟั งก์ชนั each()จะท่องไปในอะเรย์และสง ่ ค่ามาให้
ฟังก์ชน ั list() กําหนดให้ก ับต ัวแปร 2 ต ัว
ตัวอย่าง
unset($a);
$a = array( "a" => 10, "b" => 20, "c" => 30 );
array 49
while (list($key, $value) = each($a)) {
echo "$key=$value <BR>\n";
}
จะได้ผลลัพธ์
a=10 ,b=20 ,c=30
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
array 50
"wittawas" => 30 , "chuchai" => 16 );
while ( list( $name , $age ) = each( $keep_age ) ){
print(" $name = $age<br>");
}
?>
ฟั งก์ชนั ทีเกียวกับอะเรย์
51
ฟั งก์ชนั SORT
• รูปแบบการใช้งาน
void sort (array arr);
array 52
ั ทีใช้ในการเรียงลําดับรายการข้อมูลในอะเรย์นนโดยจั
เป็ นฟั งก์ชน ั ดเรียงข้อมูลจากค่า
น้อยไปหาค่ามาก
ตัวอย่าง
$sort = array(50,40,30,20);
sort($sort);
array 53
for($r = 0; $r < count($sort);$r++){
echo “$sort[$r]<br>”;
}
20
30
40
50
ฟั งก์ชนั ASORT
• รูปแบบการใช้งาน
void asort (array arr);
array 54
ั ทีใช้ในการเรียงลําดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า
เป็ นฟั งก์ชน
Value ทีเก็บไว ้จากน้อยไปหาค่ามาก
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawas" => 30 , "chuchai" => 16 );
array 55
asort( $keep_age );
do{
$name = key( $keep_age );
$age = current( $keep_age );
print "age of $name is $age<br>";
}while( next( $keep_age) );
?>
ฟั งก์ชนั KSORT
• รูปแบบการใช้งาน
void ksort (array arr);
array 56
ั ทีใช้ในการเรียงลําดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า
เป็ นฟั งก์ชน
key ทีเก็บไว ้จากน้อยไปหาค่ามาก
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawas" => 30 , "chuchai" => 16 );
array 57
ksort( $keep_age );
do{
$name = key( $keep_age );
$age = current( $keep_age );
print "age of $name is $age<br>";
}while( next( $keep_age) );
?>
ฟั งก์ชนั MAX, MIN
รูปแบบการใช้งาน max(array arr );
min(array arr );
array 58
ั max ใช้ในการหาค่าสูงสุดและ min ใช้ในการหาค่าตําสุด
ฟั งก์ชน
<?
$arr = array( 5,6,7,4,3,2,10,3,440 );
echo max( $arr) ,"<br>";
echo min( $arr) ,"<br>";
?>
ฟั งก์ชนั ARRAY
array 59
คําสังทีใช้ในการสร้างอะเรย์โดยเราสามารถกําหนดค่าของดัชนีและค่าของข้อมูลไปพร้อมกับการ
สร้างอะเรย์
ฟั งก์ชนั array_walk
รูปแบบการใช้งาน int array_walk(array arr,string func);
array 60
คําสังทีใช้ในการเข้าถึงข้อมูลทีเก็บอยูใ่ นรูปแบบของอะเรย์โดยต้องการอากิวเมนต์สองตัวคือ
1. อะเรย์ทีต้องการเข้าถึงข้อมูลทีเก็บไว้ในอะเรย์นนั
2. ชือของฟั งก์ชนั ทีต้องการเรียกใช้และต้องมีการสร้างฟั งก์ชนั โดยมีการกําหนดตัวแปร
พารามิเตอร์คอยรับค่า
ฟั งก์ชนั COUNT
รูปแบบการใช้งาน void count (array arr);
คําสังทีใช้นบ
ั จํานวนของข้อมูลทีเก็บอยูภ่ ายในรายการข้อมูลของอะเรย์นนว่
ั ามีจาํ นวนข้อมูล
array 61
ทังหมดเท่าไร
ฟั งก์ชนั CURRENT
array 62
ตัวอย่าง
$sort=array(50,40,30,20);
echo current($sort),"br>"; //แสดงค่า 50
array 63
next($sort);//เลือน pointer ไปยังข้อมูลตัวต่อไป
echo current($sort); //แสดงค่า 40
ฟั งก์ชนั EACH
array 64
ข้อมูลก็จะเลือนไปยังข้อมูลตัวถัดไป และค่าทีอ่านได้นนจะเก็
ั บไว้ในอะเรย์อกี ที
ตัวอย่าง
$sort = array(5,40,30,20);
$get = each($sort); /*ค่าใน $sort มาหนึงค่าแล้วเลือน pointer ไปยัง
array 65
ข้อมูลตัวถัดไปโดย $get จะเป็ นตัวแปรอะเรย์ทีรับค่าทีอ่านได้ */
echo “$get[0] => $get[1] <br>”;
echo “$get[key] => $get[value]”;
ฟั งก์ชนั END
รูปแบบการใช้งาน void end (array arr);
เป็ นคําสังทีใช้เลือน pointer ทีชีตําแหน่งทีอยูข่ องข้อมูลปั จจุบน
ั ไปยังตําแน่งทีอยูส่ ุดท้าย
array 66
ของรายการข้อมูลของอะเรย์นนั
ตัวอย่าง
array 67
end($sort); // เลือน pointer ไปยังข้อมูลตัวสุดท้าย
echo current($sort); // แสดงค่า 20
ฟั งก์ชนั KEY
รูปแบบการใช้งานฟังก์ชนั
mixed key (array arr);
array 68
ั อยูท่ ี pointer ชีข้อมูลในอะเรย์อยูน่ นดั
เป็ นคําสังทีใช้ในการตรวจสอบว่าตําแหน่งปั จจุบน ั ชนีของ
ข้อมูลนันมีคา่ เป็ นอะไร
ตัวอย่าง
$sort = array (“start”=>50,40,30,”stop”=>20);
echo key($sort).”<br>”;
array 69
// แสดงค่าดัชนีปัจจุบนั ที pointer ชีอยู่
end($sort);
// เลือน pointer ไปยังข้อมูลตัวต่อไป
echo key($sort);
// แสดงค่าดัชนีปัจจุบนั ที pointer ชีอยู่
Start
stop
ฟั งก์ชนั LIST
รูปแบบการใช้งาน
void list (var1,var2,…);
array 70
คําสังทีใช้ในการรับค่าทีอ่านมาได้จากอะเรย์โดยจํานวนของตัวแปร
(var1,var2,…) ทีตังรับในคําสังนีขึนอยูก่ บั ขนาดอะเรย์ทส่ี งค่ามาให้วา่ อะเรย์
นันส่งค่าข้อมูลมาให้จาํ นวนกีค่า
ตัวอย่าง
$arr = array(“A”=>10,”B”=>20,”C”=>30);
while (list($key,$data)=each($arr)){
array 71
echo “$key =>$data<br>”;
}
A =>10
B =>20
C =>30
ฟั งก์ชนั NEXT
รูปแบบการใช้งาน
mixed next(array arr)
array 72
เป็ นคําสังทีใช้เลือน pointer ให้ชีไปยังข้อมูลตัวถัดไปในรายการข้อมูลของอะเรย์
ตัวอย่าง
$sort = array(50,40,30,20);
echo current($sort).:”<br>”;
array 73
// แสดงค่าข้อมูลปั จจุบนั
50
next($sort);
40
// เลือน pointer ไปยังข้อมูลตัวต่อไป
echo current($sort);
// แสดงค่าข้อมูลหลังจากเลือน pointer
ฟั งก์ชนั PREV
รูปแบบการใช้งาน
mixed prev (array arr)
array 74
เป็ นคําสังทีใช้เลือน pointer ให้ชีไปยังข้อมูลตัวก่อนหน้านีทีมีการเลือน pointer มา
ในรายการข้อมูลของอะเรย์
ตัวอย่าง
$sort = array(50,40,30,20);
echo current($sort).”<br>”; // แสดงค่าข้อมูลปั จจุบนั
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
array 75
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
prev($sort); // เลือน pointer ถอยหลังไปยังข้อมูลตัวก่อนหน้านี
echo current($sort); // แสดงค่าข้อมูลหลังจากเลือน pointer
50
40
50
ฟั งก์ชนั RESET
รูปแบบการใช้งาน
void reset (array arr)
array 76
เป็ นคําสังทีกําหนดค่าเริมต้นของ pointer ใหม่โดยให้มาเริมต้นทีข้อมูลตัวแรกของ
รายการข้อมูลทังหมดไม่วา่ ตอนนัน pointer จะชีอยูท่ ข้ี อมูลใดก็ตาม
PHP
Prog
ram
ming
ตัวอย่าง
$sort = array(50,40,30,20);
echo current($sort).”<br>”; // แสดงค่าข้อมูลปั จจุบนั
array 77
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; //แสดงค่าข้อมูลหลังจากเลือน pointer
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
reset($sort); // สังให้ pointer ไปเริมต้นทีข้อมูลตัวแรกของรายการ
echo current($sort); // แสดงค่าข้อมูลหลังจากใช้คาํ สัง reset
PHP
Prog
ram
ming
ฟั งก์ชนั SIZEOF
รูปแบบการใช้งาน
int sizeof (array arr);
array 78
การทํางานของคําสังนีจะเหมือนกับคําสัง count
PHP
Prog
ram
ming