Unlock-Ngôn ngữ lập trình php và mys

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.

pdf115 trang | Chia sẻ: tuandn | Lượt xem: 1865 | Lượt tải: 2download
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