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.
115 trang |
Chia sẻ: tuandn | Lượt xem: 1865 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Unlock-Ngôn ngữ lập trình php và mys, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
1
Ban chØ ®¹o c«ng nghÖ th«ng tin cña c¬ quan ®¶ng
***
TµI liÖu tham kh¶o
Ng«n ng÷ lËp tr×nh pHP
Hµ néi, 2003
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
2
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µ client-
side. 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
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
3
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 .
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.
§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 ®ã).
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
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 .
Trang html
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
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
Request
Kết xuất
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
4
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
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
5
“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”);
}
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
6
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”.
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
7
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.
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
8
+ 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ô :
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
9
$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
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
10
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
+
-
*
/
%
PhÐp céng
PhÐp trõ
PhÐp nh©n
PhÐp chia
Chia d
7 + 2
7 – 2
7 * 2
7 / 2
7 % 2
Thùc hiÖn phÐp céng gi÷a 7 vµ 2 : 9
Thùc hiÖn phÐp trõ gi÷a 7 vµ 2 : 5
Thùc hiÖn phÐp nh©n gi÷a 7 vµ 2 : 14
Thùc hiÖn phÐp chia gi÷a 7 vµ 2 : 3.5
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 -= $i
$h *= $i
$h /= $i
$h %= $i
$h = $h + $i
$h = $h - $i
$h = $h * $i
$h = $h / $i
$h = $h % $i
+ PhÐp g¸n :
vÝ dô :
$x = 1;
$y = $x + 1;
$length = $area / $width;
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
11
+ B¶ng c¸c phÐp to¸n quan hÖ
PhÐp
to¸n
ý nghÜa VÝ dô Gi¶i thich
==
<
>
<=
>=
!=
So s¸nh b»ng
So s¸nh nhá h¬n
So s¸nh lín h¬n
Nhá h¬n hoÆc
b»ng
Lín h¬n hoÆc
b»ng
So s¸nh kh¸c
So s¸nh kh¸c
$h ==
$i
$h < $i
$h > $i
$h <=
$i
$h =>
$i
$h != $i
$h
$i
KiÓm tra $h vµ $i cã b»ng nhau
kh«ng
KiÓm tra $h cã nhá h¬n $i kh«ng
KiÓm tra $h cã lín h¬n $i kh«ng
KiÓm tra $h cã nhë h¬n hoÆc b»ng $i
KiÓm tra $h cã lín h¬n hoÆc b»ng $i
KiÓm tra $h cã kh¸c $i kh«ng
KiÓm tra $h cã kh¸c $i kh«ng
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
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
+ C¸c phÐp to¸n víi biÕn kiÓu string .
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
12
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&0
0&1
0&0
1
0
0
0
1 | 1
1 | 0
0 | 1
0 | 0
1
1
1
0
1^1
1^0
0^1
0^0
0
1
1
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 .
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
13
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 ;
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
14
+ 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
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
15
+ 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ô :
<?php
if ($a == $b)
if ($c == $d)
$max = 0
else
$max = $d;
?>
T−¬ng ®−¬ng víi :
<?php
if ($a == $b)
{ if ( $c == $d)
$max = 0;
}
else
$max = $b;
?>
* C©u lÖnh 2 cña d¹ng 2 lµ elseif :
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
16
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;
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]
}
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
17
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ô :
<?php
$val = 6;
$a = 5;
$b = 6;
$d = 7;
switch ($val)
{
case $a :
echo (“five”);
break;
case $b :
echo (“six”);
break;
case $c :
echo (“seven”);
break;
default :
echo ($val);
}
?>
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.
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
18
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ô :
<?php
for($i = 0; $j = 4,$i < $j; $i++,$j--)
{ echo (“i =”. $i. “ ,j = “. $j. “”);
}
?>
+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ô :
<?php
for ( ; ; ) {
if (my_function() == “stop”) break;
}
?>
+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 ;
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
19
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;
}
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
20
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ô :
<?php
echo (“\n”);
$i = 0;
$total = 10;
do {
echo (“\t $i\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 .
Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
21
LÖnh break