PHP & MySQL
Ban chØ ®¹o c«ng nghÖ th«ng tin cña c¬ quan
®¶ng
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
***
TµI liÖu tham kh¶o
Ng«n ng÷ lËp tr×nh pHP
Hµ néi, 2003
1
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
PhÇn I : Giíi thiÖu ng«n ng÷ lËp tr×nh PHP
ch−¬ng i : Ng«n ng÷ lËp tr×nh pHP
I. Giíi thiÖu PHP vµ m«i tr−êng lËp tr×nh web.
1. PHP lµ g× ?
C¸i tªn PHP ban ®Çu ®−îc viÕt t¾t bëi côm tõ Personal Home Page, vµ
®−îc ph¸t triÓn tõ n¨m 1994 bëi Rasmus Lerdorf. Lóc ®Çu chØ lµ mét bé ®Æc
t¶ Perl, ®−îc sö dông ®Ó l−u dÊu vÕt ng−êi dïng trªn c¸c trang web. Sau ®ã,
Rasmus Lerdorf ®· ph¸t triÓn PHP nh− lµ mét m¸y ®Æc t¶ (Scripting engine).
Vµo gi÷a n¨m 1997, PHP ®· ®−îc ph¸t triÓn nhanh chãng trong sù yªu thÝch
cña nhiÒu ng−êi. PHP ®· kh«ng cßn lµ mét dù ¸n c¸ nh©n cña Rasmus
Lerdorf vµ ®· trë thµnh mét c«ng nghÖ web quan träng. Zeev Suraski vµ
Andi Gutmans ®· hoµn thiÖn viÖc ph©n tÝch có ph¸p cho ng«n ng÷ ®Ó råi
th¸ng 6 n¨m 1998, PHP3 ®· ra ®êi (phiªn b¶n nµy cã phÇn më réng lµ
*.php3). Cho ®Õn tËn thêi ®iÓm ®ã, PHP ch−a mét lÇn ®−îc ph¸t triÓn chÝnh
thøc, mét yªu cÇu viÕt l¹i bé ®Æc t¶ ®−îc ®−a ra, ngay sau ®ã PHP4 ra ®êi
(phiªn b¶n nµy cã phÇn më réng kh«ng ph¶i lµ *.php4 mµ lµ *.php). PHP4
nhanh h¬n so víi PHP3 rÊt nhiÒu. PHP b©y giê ®−îc gäi lµ PHP Hypertext
PreProcesor.
2. T¹i sao ph¶i sö dông PHP
Nh− chóng ta ®· biÕt, cã rÊt nhiÒu trang web ®−îc x©y dùng bëi ng«n
ng÷ HTML (HyperText Markup Language). §©y chØ lµ nh÷ng trang web
tÜnh, nghÜa lµ chóng chØ chøa ®ùng mét néi dung cô thÓ víi nh÷ng dßng v¨n
b¶n ®¬n thuÇn, h×nh ¶nh ,vµ cã thÓ ®−îc sù hç trî bëi ng«n ng÷ JavaScript,
hoÆc Java Apple. Nh÷ng trang web nh− vËy ng−êi ta th−êng gäi lµ clientside. Tuy nhiªn, Internet vµ Intranets ®· ®−îc sö dông cho c¸c øng dông cÇn
tíi c¬ së d÷ liÖu. C¸c trang øng dông nh− vËy ®−îc gäi lµ trang web ®éng,
bëi v× néi dung cña chóng lu«n thay ®æi tïy thuéc vµo d÷ liÖu vµ ng−êi sö
dông. PHP lµ ng«n ng÷ lµm ®−îc nh÷ng ®iÒu nh− vËy. B»ng c¸ch ch¹y
ch−¬ng tr×nh PHP trªn m¸y chñ Web server, b¹n cã thÓ t¹o ra c¸c øng dông
2
PHP & MySQL
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
cã sù t−¬ng t¸c víi c¬ së d÷ liÖu ®Ó t¹o ra nh÷ng trang web vµ ®©y ®−îc gäi
lµ trang web ®éng.
Chóng ta h·y xem xÐt c¸ch ho¹t ®éng
cña trang web ®−îc viÕt b»ng ng«n ng÷ HTML
vµ PHP nh− thÕ nµo.
Víi c¸c trang HTML :
Khi cã yªu cÇu tíi mét trang web tõ
phÝa ng−êi sö dông (browser). Web server
thùc hiÖu ba b−íc sau :
+ §äc yªu cÇu tõ phÝa browser,
+ T×m trang web trªn server.
+ Göi trang web ®ã trë l¹i cho
browser (nÕu t×m thÊy)
qua m¹ng Internet hoÆc Intranet .
Web server
+ Đọc yêu cầu từ browser
+ Tìm file.htm trên server
+ Gửi lại cả file.htm cho browser
Request
http://domain/file.htm
Trang html
Víi c¸c trang PHP :
Kh¸c víi c¸c trang HTML, khi mét trang PHP ®−îc yªu cÇu, web
server ph©n tÝch vµ thi hµnh c¸c ®o¹n m· PHP
®Ó t¹o ra trang HTML.
Web server
+ Đọc yêu cầu từ browser
+ Tìm trang web(file.php) trên server
+ Thực hiện các đoạn mã PHP
+ Gửi trả lại nội dung cho browser
§iÒu ®ã ®−îc thÓ hiÖn b»ng bèn b−íc sau :
+ §äc yªu cÇu tö phÝa browser.
+ T×m trang web trªn server.
+ Thùc hiÖn c¸c ®o¹n m· PHP trªn trang web ®ã ®Ó söa
®æi néi dung cña trang.
+ Göi trë l¹i néi dung cho browser (®©y lµ trang HTML
cã thÓ hiÓn thÞ ®−îc bëi tr×nh duyÖt Internet Explorer
hoÆc tr×nh duyÖt nµo ®ã).
Kết xuất
Tãm l¹i, sù kh¸c nhau gi÷a HTML vµ PHP
lµ HTML kh«ng ®−îc thùc hiÖn trªn m¸y
chñ Web server cßn c¸c trang *.php
Request
http://domain/file.php
viÕt b»ng c¸c ®o¹n m· PHP ®−îc thùc hiÖn
trªn m¸y chñ Web server do ®ã nã linh ®éng vµ mÒm dÎo h¬n .
3
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
3. Nh÷ng ®iÓm m¹nh cña PHP
-PHP thùc hiÖn víi tèc ®é rÊt nhanh vµ hiÖu qu¶ .Mét Server b×nh th−êng
cã thÓ ®¸p øng ®−îc hµng triÖu truy cËp tíi trong mét ngµy.
PHP hç trî kÕt nèi tíi rÊt nhiÒu hÖ CSDL kh¸c nhau:
PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase,
Sybase, ... Ngoµi ra cßn hç trî kÕt nèi víi ODBC th«ng qua ®ã cã thÓ kÕt
nèi víi nhiÒu ng«n ng÷ kh¸c mµ ODBC hç trî.
-PHP cung cÊp mét hÖ thèng th− viÖn phong phó : Do PHP ngay tõ ®Çu
®−îc thiÕt kÕ nh»m môc ®Ých x©y dùng vµ ph¸t triÓn c¸c øng dông trªn
web nªn PHP cung cÊp rÊt nhiÒu hµm x©y dùng s½n gióp thùc hiÖn c¸c
c«ng viÖc rÊt dÔ dµng : göi, nhËn mail ,lµm viÖc víi c¸c cookie, vµ nhiÒu
thø kh¸c n÷a .
-PHP lµ mét ng«n ng÷ rÊt dÔ dïng, dÔ häc vµ ®¬n gi¶n h¬n nhiÒu so víi
c¸c ng«n ng÷ kh¸c nh− Perl, Java. NÕu b¹n ®· biÕt ng«n ng÷ C th× mäi
viÖc sÏ hoµn toµn thuËn lîi .
-PHP cã thÓ sö dông ®−îc trªn nhiÒu hÖ ®iÒu hµnh, chóng ta cã thÓ viÕt
chóng trªn Unix, Lunix vµ c¸c phiªn b¶n cña Windows. Vµ cã thÓ ®em
m· PHP nµy ch¹y trªn c¸c hÖ ®iÒu hµnh kh¸c mµ kh«ng ph¶i söa ®æi l¹i
m·.
-PHP lµ ng«n ng÷ m· nguån më.
II. BiÕn, h»ng sè vµ kiÓu d÷ liÖu trong PHP.
1. KiÓu d÷ liªu .
PHP cã ba kiÓu d÷ liÖu c¬ b¶n : interger, double vµ string. Ngoµi ra cßn
cã c¸c kiÓu d÷ liÖu kh¸c (nh−ng kh«ng ph¶i c¸c kiÓu d÷ liÖu c¬ b¶n) nh−
arrays (c¸c kiÓu d÷ liÖu m¶ng), objects (c¸c kiÓu d÷ liÖu ®èi t−îng).
Interger lµ kiÓu chiÕm 4 byte bé nhí ,gi¸ trÞ cña nã trong kho¶ng –2 tû
tíi + 2 tû. KiÓu Double lµ kiÓu sè thùc ,ph¹m vi biÓu diÔn ± (10-308 ÷ 10308).
KiÓu string dïng ®Ó chøa c¸c gi¸ trÞ bao gåm c¸c ký tù vµ con sè .
VÝ dô : 2
// ®©y lµ kiÓu interger
1.0
// ®©y lµ kiÓu double
“2”
// ®©y lµ kiÓu string
4
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
“2 hours” // ®©y lµ mét kiÓu string kh¸c
2. H»ng sè
H»ng sè lµ nh÷ng gi¸ trÞ kh«ng ®æi. Chóng ta th−êng dïng h»ng sè ®Ó
l−u c¸c gi¸ trÞ kh«ng ®æi trong suèt ch−¬ng tr×nh nh− : nhiÖt ®é (00C), c¸c gi¸
trÞ thêi gian chØ sù chuyÓn giao gi÷a s¸ng ,ch−a ,chiÒu ,tèi ...
a. Khai b¸o h»ng sè :
Ta dïng hµm define() ®Ó khai b¸o h»ng sè :
define(“COMPANY”, “Phop’s Bicycles”);
define(“YELLOW”, “#FFFF00”);
define(“VERSION”, 4);
define(“NL”, “
\n”);
Trong vÝ dô trªn chóng ta ®· dïng hµm define() ®Ó khai b¸o h»ng sè
NL. H»ng sè nµy lµ mét thÎ ng¾t dßng trong HTML.
Chóng ta sÏ sö dông c¸c h»ng sè trong PHP nh− sau :
echo (“Employment at ”. COMPANY. NL);
C¸ch viÕt trªn còng gièng nh− c¸c viÕt sau:
echo (“Employment at Phop’s Bicycles
\n”);
Chó ý : h»ng sè ph¶i ë ngoµi hai dÊu “ vµ ”. Trêng hîp sau lµ kh«ng cã
hiÖu lùc : echo (“Employment at COMPANY NL”);. Khi thùc hiÖn nã sÏ cho
kÕt qu¶ lµ : “Employment at COMPANY NL”.
Hµm defined() : hµm nµy dïng ®Ó kiÓm tra xem mét h»ng sè nµo ®ã
®· ®−îc khai b¸o ch−a.
VÝ dô : if ( defined (“YELLOW”)) {
echo (“\n”);
}
5
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
b. C¸c h»ng sè ®· ®−îc ®Þnh nghÜa trong PHP (Built-in Constants):
§Ó hç trî cho ng−êi lËp tr×nh, PHP cung cÊp s½n c¸c h»ng sè nh− : c¸c
biÕn m«i trêng, c¸c biÕn cña Web server Apache ... Ngêi lËp tr×nh cã thÓ sö
dông hµm phpinfo() ®Ó xem c¸c gi¸ trÞ nµy.
+ H»ng sè nguyªn : ®©y lµ nh÷ng gi¸ trÞ cã kiÓu integer. VÝ dô : 10
+ H»ng sè thùc: ®©y lµ nh÷ng gi¸ trÞ cã kiÓu double. VÝ dô : 10.00
+ H¾ng ký tù : ®©y lµ mét x©u ký tù ®Æt trong dÊu ngoÆc ®¬n hoÆc
kÐp.
VÝ dô : “Ng«n ng÷ lËp tr×nh PHP”.
6
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
3. BiÕn vµ gi¸ trÞ logic.
+ Còng gièng víi C/C++, PHP kh«ng cã kh¸i niÖm TRUE vµ FALSE.
C¸c gi¸ trÞ TRUE ®−îc hiÓu lµ nh÷ng gi¸ trÞ b»ng 1 vµ gi¸ trÞ FALSE lµ
nh÷ng gi¸ trÞ b»ng 0 hoÆc x©u rçng .
+ Khi sö dông biÕn chóng ta kh«ng cÇn khai b¸o kiÓu .
VÝ dô : $a = 1;
// $a lµ mét biÕn kiÓu integer.
$a = 1.2; // b©y giê $a lµ mét biÕn kiÓu double.
$a = “A” ; // b©y giê $a l¹i lµ mét biÕn kiÓu string.
+ NÕu nh− thùc hiÖn phÐp to¸n gi÷a biÕn cã kiÓu sè vµ kiÓu string,
PHP sÏ coi chuçi lµ mét d·y sè nh− sau :
$str = “222B Baker Street”;
Ta thÊy biÕn $str cã gi¸ trÞ kiÓu string, vµ nÕu céng sè 3 víi gi¸ trÞ nµy
th× :
$x = 3 + $str ;
// $x = 225
khi ®ã biÕn $x nhËn ®−îc gi¸ trÞ 255 v× PHP ®· céng 3 víi ba sè ®Çu.
Nhng nÕu ta in gi¸ trÞ cña biÕn $str th×
echo ($str);
// print : “222B Baker Street”
Chó ý r»ng c¸c phÐp to¸n gi÷a sè vµ chuçi chØ ®óng khi ký tù ®Çu cña
chuçi lµ sè .
+ Ta còng cã thÓ lµm thay ®æi kiÓu gi¸ trÞ cña mét biÕn b»ng c¸ch Ðp
kiÓu
$a = 11.2;
// biÕn $a cã kiÓu double
$a = (int) $a;
// b©y giê $a cã kiÓu integer ,gi¸ trÞ lµ 11
$a = (double) $a; // b©y giê $a l¹i cã kiÓu double, gi¸ trÞ lµ 11.0
$b = (string) $a ; // biÕn $b cã kiÓu string ,gi¸ trÞ lµ “11”
Còng ph¶i biÕt r»ng PHP tù ®éng chuyÓn ®æi kiÓu rÊt tèt. NÕu thËt sù
cÇn thiÕt chóng ta míi ph¶i dïng c¸ch trªn.
7
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
+ C¸c hµm lµm viÖc víi biÕn
gettype() : hµm nµy tr¶ l¹i kiÓu cña mét biÕn nµo ®ã. Gi¸ trÞ tr¶ vÒ cã
thÓ lµ : “integer”
“double”
“string”
“array”
“object”
“class”
“unknown type”
vÝ dô :
if (gettype($user_input) == “integer”)
{
$age = $user_input;
}
settype() : hµm nµy Ðp kiÓu cho mét biÕn nµo ®ã. NÕu thµnh c«ng
hµm tr¶ vÒ gi¸ trÞ 1 (true) ,ng−îc l¹i lµ 0 (false).
vÝ du :
$a = 7.5;
settype($a, “integer”);
if (settype($a, “array”)){
echo (“Conversion succeeded. ”);
}else{
echo (“Conversion error. ”);
}
isset() vµ unset() : Hµm isset() kiÓm tra mét biÕn ®· ®−îc g¸n gi¸ trÞ
hay ch−a, hµm unset() sÏ gi¶i phãng bé nhí cho mét biÕn nµo ®ã .
vÝ dô :
8
PHP & MySQL
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
$id = “323bb”;
if (isset($id)) {
echo (“D÷ liÖu ®· ®−îc g¸n”);
}else{
echo (“D÷ liÖu ch−a ®−îc g¸n”);
}
unset($id);
if(!isset($id)) {
echo (“D÷ liÖu ®· ®−îc gi¶i phãng”);
}
empty() : Còng gièng hµm isset(), hµm empty() sÏ tr¶ vÒ gi¸ trÞ 1
(true) nÕu mét biÕn lµ rçng vµ ng−îc l¹i 0 (false). §èi víi biÕn cã kiÓu sè
gi¸ trÞ b»ng 0 ®−îc coi lµ rçng, biÕn kiÓu string ®−îc coi lµ rçng nÕu x©u lµ
x©u rçng.
vÝ dô:
echo empty($new) ;
// true
$new = 1;
echo empty($new);
// false
$new = “”;
echo empty($new);
// true
$new = 0;
echo empty($new);
// true
$new = “So 323”;
echo empty($new);
// false
unset($new);
echo empty($new);
// true
9
PHP & MySQL
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
III. C¸c to¸n tö
+ B¶ng c¸c phÐp to¸n sè häc
PhÐp to¸n
ý nghÜa
VÝ dô
Gi¶i thÝch
Thùc hiÖn phÐp céng gi÷a 7 vµ 2 : 9
+
PhÐp céng
7+2
-
PhÐp trõ
7–2
Thùc hiÖn phÐp trõ gi÷a 7 vµ 2 : 5
*
PhÐp nh©n
7*2
Thùc hiÖn phÐp nh©n gi÷a 7 vµ 2 : 14
/
PhÐp chia
7/2
Thùc hiÖn phÐp chia gi÷a 7 vµ 2 : 3.5
%
Chia d
7%2
Thùc hiÖn phÐp chia d gi÷a 7 vµ 2 : 1
Ta cã thÓ viÕt c¸c phÐp to¸n ng¾n gän nh− b¶ng sau :
Khi viÕt
T−¬ng ®−¬ng víi
$h += $i
$h = $h + $i
$h -= $i
$h = $h - $i
$h *= $i
$h = $h * $i
$h /= $i
$h = $h / $i
$h %= $i
$h = $h % $i
+ PhÐp g¸n :
vÝ dô :
$x = 1;
$y = $x + 1;
$length = $area / $width;
10
PHP & MySQL
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
+ B¶ng c¸c phÐp to¸n quan hÖ
PhÐp ý nghÜa
to¸n
VÝ dô
Gi¶i thich
KiÓm tra $h vµ $i cã b»ng nhau
kh«ng
==
So s¸nh b»ng
<
So s¸nh nhá h¬n
$h ==
$i
>
So s¸nh lín h¬n
$h < $i
KiÓm tra $h cã nhá h¬n $i kh«ng
<=
Nhá h¬n hoÆc
b»ng
$h > $i
KiÓm tra $h cã lín h¬n $i kh«ng
$h <=
$i
KiÓm tra $h cã nhë h¬n hoÆc b»ng $i
KiÓm tra $h cã kh¸c $i kh«ng
So s¸nh kh¸c
$h =>
$i
So s¸nh kh¸c
$h != $i
>=
!=
<>
Lín h¬n hoÆc
b»ng
KiÓm tra $h cã lín h¬n hoÆc b»ng $i
KiÓm tra $h cã kh¸c $i kh«ng
$h <>
$i
C¸c phÐp so s¸nh th−êng dïng kiÓm tra ®iÒu kiÖn trong c¸c c©u lÖnh
®iÒu khiÓn mµ ta sÏ häc ë bµi sau .
+ B¶ng c¸c phÐp to¸n logic
PhÐp to¸n logic cïng víi to¸n h¹ng t¹o thµnh biÓu thøc logic. BiÓu thøc
logic cã thÓ cã gi¸ trÞ lµ 1 (true) hoÆc 0 (false) .
To¸n h¹ng a
To¸n h¹ng b
a && b
a || b
!a
!b
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
+ C¸c phÐp to¸n víi biÕn kiÓu string .
11
PHP & MySQL
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
Ta sö dông dÊu “. “ ®Ó ghÐp hai biÕn kiÓu string víi nhau .
vÝ dô : $first = “Phineas”;
$last = “Phop”;
$full = $first. “ ”. $last;
// $full = “Phineas Phop” ;
echo ($full);
Ta cã thÓ ghÐp hai x©u nh− sau:
echo ($last. “’s Bicycles”);
//print : Phop’s Bicycles
§Ó cã thÓ chÌn mét biÕn vµo trong hµng cã kiÓu string th× tªn biÕn
ph¶i ®Ó trong dÊu ®ãng më ngoÆc nhän.
echo (“${last}’s Bicycles”);
+ C¸c phÐp to¸n thao t¸c møc bit.
C¸c phÐp to¸n thao t¸c møc bit t¸c ®éng lªn tõng bit cña to¸n h¹ng .
Ký hiÖu
ý nghÜa
&
AND bit
|
OR bit
^
XOR bit
B¶ng c¸c phÐp to¸n nh− sau :
&
KÕt qu¶
|
KÕt qu¶
^
KÕt qu¶
1&1
1
1|1
1
1^1
0
1&0
0
1|0
1
1^0
1
0&1
0
0|1
1
0^1
1
0&0
0
0|0
0
0^0
0
PHP còng hç trî c¸c phÐp dÞch ph¶i vµ dÞch tr¸i
>> : dÞch ph¶i
<< : dÞch tr¸i
Gi¶ sö $a lµ mét biÕn nguyªn th× phÐp to¸n : $a >> n lµm cho c¸c bit
trong $a bÞ dÞch ph¶i ®i n vÞ trÝ. T−¬ng tù ta cã phÐp dÞch tr¸i .
12
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
vÝ dô : 11 >> 2 = 2 ;
v× :
11 (1011)
>> 2
2 (0010)
+ C¸c phÐp to¸n t¨ng gi¶m :
- PhÐp t¨ng : phÐp t¨ng (to¸n tö t¨ng) t¨ng gi¸ trÞ cña to¸n h¹ng lªn
mét ®¬n vÞ.
$a ++ : $a ®−îc sö dông råi míi t¨ng
++ $a : $a t¨ng råi míi ®−îc sö dông
- PhÐp gi¶m : t−¬ng tù nh− phÐp t¨ng, kh¸c lµ gi¸ trÞ bÞ gi¶m ®i mét
®¬n vÞ.
$a -- : $a ®−îc sö dông råi míi gi¶m
-- $a : $a gi¶m råi míi ®−îc sö dông
vÝ dô :
$a = 10;
// $a b»ng 10
$b = $a++ ; // $a b»ng 11 nh−ng $b b»ng 10
$a = 10;
// $a b»ng 10
$b = -- $a ; // $a b»ng 9 vµ $b b»ng 9
+ PhÐp to¸n ®iÒu kiÖn. ? :
PhÐp to¸n ®iÒu kiÖn cïng víi to¸n h¹ng t¹o nªn biÓu thøc ®iÒu kiÖn.
Ta ký hiÖu e1 ,e2, e3 lµ ba to¸n h¹ng.
BiÓu thøc cã d¹ng : e1 ? e2 : e3
NÕu e1 != 0 th× gi¸ trÞ cña biÓu thøc ®iÒu kiÖn lµ e2
NÕu e1 == 0 th× gi¸ trÞ cña biÓu thøc ®iÒu kiÖn lµ e3
vÝ dô : t×m max
max = $a>$b ? a : b ;
13
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
+ To¸n tö sizeof (®èi t−îng) :
PhÐp to¸n sizeof cho biÕt kÝch th−íc (tÝnh b»ng byte ) « nhí mµ ®èi
t−îng chiÕm trong bé nhí. §èi t−îng ë ®©y cã kiÓu lµ integer, double,
string.
vÝ dô : $a = 10;
echo sizeof($a);
//sÏ in ra mµn h×nh lµ : 4
IV. C¸c c©u lÖnh ®iÒu khiÓn
1. LÖnh if_else : ®©y lµ lÖnh rÏ nh¸nh cã ®iÒu kiÖn .
a. D¹ng 1 :
if ( biÓu thøc ) c©u lÖnh;
C©u lÖnh ë ®©y t−¬ng ®−¬ng víi mét khèi lÖnh. Mét khèi lÖnh ®−îc
®Æt trong dÊu ngoÆc kÐp.
ý nghÜa :
+ NÕu biÓu thøc kh¸c kh«ng ,th× c©u lÖnh ®−îc thùc hiÖn.
+ NÕu biÓu thøc b»ng kh«ng, th× c©u lÖnh kh«ng ®−îc thùc hiÖn
b. D¹ng 2 :
if ( biÓu thøc )
c©u lÖnh 1;
else
c©u lÖnh 2;
ý nghÜa :
+ NÕu biÓu thøc kh¸c kh«ng ,th× c©u lÖnh 1 ®−îc thùc hiÖn.
+ NÕu biÓu thøc b»ng kh«ng, th× c©u lÖnh 2 ®−îc thùc hiÖn
Chó ý :
* C©u lÖnh 1 ë d¹ng 2 lµ lÖnh if_else
14
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
+ NÕu l−îng else b»ng l−îng If th× else thuéc vÒ If gÇn nhÊt
theo tõng cÆp tõ trong ra ngoµi.
VÝ dô :
$a = 10; $b = 10;
$c = 3; $d = 3;
$e = 12; $f = 8;
if($a == $b)
if($c == $d)
if($e == $f)
$max = $e;
else
$max = $f;
else
$max = $d;
else
$max = $b
echo $max ;
//printf max = 8
+ NÕu l−îng else Ýt h¬n l−îng If th× else thuéc vÒ If ngÇn nhÊt
theo tõng cÆp tõ trong ra ngoµi.
VÝ dô :
T−¬ng ®−¬ng víi :
* C©u lÖnh 2 cña d¹ng 2 lµ elseif :
15
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
B¾t nguån tõ :
if ( biÓu_thøc1 )
c©u_lÖnh 1;
else
if ( biÓu_thøc 2 )
c©u_lÖnh 2;
else
if ( biÓu_thøc 3 )
c©u_lÖnh 3;
...
else
if ( biÓu_thøc i )
c©u_lÖnh i;
...
else
c©u_lÖnh n;
PHP & MySQL
Cã thÓ viÕt l¹i nh− sau:
if ( biÓu_thøc1 )
c©u_lÖnh 1;
elseif (biÓu_thøc 2)
c©u_lÖnh 2;
elseif (biÓu_thøc 3)
c©u_lÖnh 3;
...
elseif (biÓu_thøc i)
c©u_lÖnh i;
...
else
c©u_lÖnh n;
C©u lÖnh elseif t¹o ra lÖnh rÏ nh¸nh cã ®iÒu kiÖn trong ®ã thùc
hiÖn 1 trong n c¸ch kh¸c nhau.
- NÕu biÓu_thøc i kh¸c kh«ng (i = 1,..n-1) th× thùc hiÖn c©u
lÖnh i .
- NÕu biÓu_thøc i b»ng kh«ng (i = 1, ..n-1) th× c©u lÖnh thø
n ®−îc thùc hiÖn.
2. C©u lÖnh switch :
switch (biÓu_thøc n)
{
case n1:
c©u lÖnh 1;
break;
case n2:
c©u lÖnh 2;
break;
...
case nn:
c©u lÖnh nn;
[default: c©u lÖnh]
}
16
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
C©u lÖnh switch lµ c©u lÖnh rÏ nh¸nh cã ®iÒu kiÖn trong ®ã thùc
hiÖn mét trong n c¸i rÏ nh¸nh.
+NÕu biÓu_thøc n = ni (i = 1, .. n) th× c©u lÖnh sau case ni ®−îc
thùc hiÖn cho ®Õn khi gÆp lÖnh break hoÆc dÊu ngoÆc “}”
+NÕu biÓu_thøc n != mäi ni (i = 1, .. n) mµ cã nh¸nh Default th×
c¸c c©u lÖnh sau Default ®−îc thùc hiÖn.
VÝ dô :
3. C©u lÖnh FOR:
D¹ng lÖnh :
for (biÓu_thøc 1; biÓu_thøc 2; biÓu_thøc 3)
c©u lÖnh ;
LÖnh for lµ lÖnh t¹o chu tr×nh cã ®iÒu kiÖn.
B−íc 1 : tÝnh biÓu_thøc 1
B−íc 2 : tÝnh biÓu_thøc 2 :
NÕu biÓu_thøc 2 kh¸c 0 th× thùc hiÖn c©u lÖnh vµ sang b−íc 3.
17
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
NÕu biÓu_thøc 2 b»ng 0 th× kÕt thóc vßng for
B−íc 3 : tÝnh biÓu_thøc 3 vµ quay l¹i b−íc 2.
+ biÓu_thøc 1, biÓu_thøc 2, biÓu_thøc 3 lµ c¸c thµnh phÇn. Mçi thµnh
phÇn cã thÓ gåm nhiÒu biÓu thøc. Khi ®ã mçi biÓu thøc ®−îc viÕt c¸ch nhau
mét dÊu phÈy (“,”).
+C¸c biÓu thøc ®−îc tÝnh lÇn l−ît tõ tr¸i qua ph¶i
+BiÓu thøc trong biÓu_thøc 2 quyÕt ®Þnh thùc hiÖn th©n cña for.
VÝ dô :
”);
}
?>
+Cã thÓ v¾ng mÆt bÊt kÓ thµnh phÇn nµo. NÕu v¾ng mÆt biÓu_thøc 2
th× c©u lÖnh lu«n ®−îc thùc hiÖn. MÆc dï v¾ng mÆt vÉn ph¶i cã dÊu chÊm
phÈy (“;”)
VÝ dô :
+NÕu v¾ng biÓu_thøc 1 vµ biÓu_thøc 3 th× :
for ( ; biÓu_thøc 2 ; ) cau_lenh ;
t−¬ng ®−¬ng víi :
while (biÓu_thøc 2) cau_lenh ;
4. C©u lÖnh WHILE
while (biÓu_thøc)
c©u lÖnh ;
18
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
LÖnh while lµ mét lÖnh t¹o chu tr×nh cã ®iÒu kiÖn. §iÒu kiÖn thùc hiÖn
®−îc kiÓm tra ë ®Çu chu tr×nh.
B−íc 1 : TÝnh biÓu thøc
NÕu biÓu thøc kh¸c kh«ng, sang b−íc 2
NÕu biÓu thøc b»ng kh«ng, kÕt thóc vßng while
B−íc 2 : Thùc hiÖn c©u lÖnh.
Quay l¹i b−íc 1.
Chó ý :
+ BiÓu thøc cã thÓ bao gåm nhiÒu biÓu thøc. Khi ®ã c¸c biÓu thøc ®−îc
viÕt c¸ch nhau mét dÊu phÈy ,vµ ®−îc tÝnh lÇn l−ît tõ tr¸i qua ph¶i. BiÓu
thøc cuèi cïng quyÕt ®Þnh thùc hiÖn c©u lÖnh.
+ Kh«ng ®−îc phÐp v¾ng mÆt biÓu thøc
+ §Ó t¹o chu tr×nh v« tËn th×
while(1)
{
...
if (biÓu_thøc) break;
...
}
VÝ dô :
$i = 11;
while (--$i)
{
if (my_function($i) == “error”) {
break;
}
++ $number;
}
19
Ban chØ ®¹o cntt cña c¬ quan ®¶ng
PHP & MySQL
5. LÖnh DO ... WHILE
D¹ng lÖnh :
do {
c©u lÖnh;
}while (biÓu_thøc);
LÖnh do ... while lµ lÖnh t¹o chu tr×nh cã ®iÒu kiÖn, trong ®ã ®iÒu kiÖn
thùc hiÖn chu tr×nh ®−îc kiÓm tra ë cuèi chu tr×nh.
Ho¹t ®éng :
B−íc 1 : Thùc hiÖn c©u lÖnh
B−íc 2 : TÝnh biÓu thøc biÓu_thøc
+NÕu biÓu thøc biÓu_thøc kh¸c kh«ng th× quay l¹i b−íc 1
+NÕu biÓu thøc biÓu_thøc b»ng kh«ng th× kÕt thóc do ... while.
VÝ dô :
\n”);
$i = 0;
$total = 10;
do {
echo (“\t \n”);
}while(++ $i < $total);
echo (“\n”);
?>
6. LÖnh break
Lµ lÖnh rÏ nh¸nh kh«ng ®iÒu kiÖn vµ th−êng dïng ®Ó ra khái th©n cña
switch, while, do ... while, for .
20
- Xem thêm -