LAÄP TRÌNH WEB ĐỘNG VÔÙI
PHP / MySQL
GUESTBOOK
CATALOG
FORUM
SHOPPING CART
PHAÀN 3 Toáng Phöôùc Khaûi (toång hôïp & bieân dòch)
BIEÁN (variables) vaø caùc pheùp xöû lyù treân bieán
PHP
1- Bieán vaø caùch söû duïng Bieán 2- Xöû lyù döõ lieäu töø FORM 3- Tìm hieåu saâu hôn veà Bieán
Baïn ñoïc thaân meán, Vöøa qua toâi ñaõ soaïn xong phaàn 1 vaø phaàn 2 cuûa giaùo trình töï hoïc PHP/MySQL. Toâi ñaõ nhaän ñöôïc email cuûa nhöõng baïn quan taâm, chôø ñôïi phaàn 3 cuûa giaùo trình naøy. Ñaùng leõ phaàn 3 ñaõ cho ra ñôøi sôùm nhöng vì baän roän quaù nhieàu coâng vieäc (hieän toâi ñang phuï traùch vaø coù raát nhieàu coâng vieäc trong nhoùm Hanosoft - software Haùn Noâm) neân vieäc bieân soaïn saùch töï hoïc naøy ít nhieàu bò trì hoaõn. Do hoaøn caûnh treân, chaéc chaén coâng vieäc bieân soaïn naøy khoâng traùnh ñöôïc nhöõng sai soùt. Nhöng duø sao ñi nöõa, bieát ñöôïc caùc baïn coù theå aùp duïng giaùo trình naøy vaøo thöïc teá thì toâi phaàn naøo cuõng laáy ñoù laøm söï khích leä cho rieâng mình. Ñuùng lyù ra phaàn 3 naøy laø daønh troïn cho vieäc noùi veà ngoân ngöõ SQL nhöng phaàn 2 ñaõ baøn veà CSDL roài, neáu phaàn naøy neáu cuõng baøn veà noù thì coù veû hôi nhaøm phaûi khoâng caùc baïn? Vôùi yù nghó naøy toâi ñaõ daønh troïn phaàn 3 ñeå noùi veà bieán trong PHP. Haún nhieân toâi bieát moät soá baïn mong moûi nhöõng gì trong ñaây coù theå aùp duïng lieàn thì ñôõ chaùn hôn. Nhöng theo toâi nghó tröôùc tieân heát baïn caàn phaûi naém roõ moïi ngoùc ngaùch cuûa PHP vaø MySQL thì môùi coù theå thieát keá ñöôïc nhöõng chöông trình ñaït tieâu chuaån. Do vaäy mong caùc baïn haõy kieân nhaãn khi ñoïc nhöõng chöông höôùng daãn suoâng nhö theá naøy! Ñöøng naûn loøng vaø neân ghi nhôù ñaây laø coäi reã cho caùc öùng duïng thöïc teá cuûa caùc baïn.
Ñeå baét ñaàu chöông naøy ít nhaát baïn cuõng phaûi coù chuùt ñænh kieán thöùc veà Cô Sôû Laäp Trình. Toâi nghó neáu baïn ñaõ hoïc qua moät khoaù laäp trình caên baûn thì baïn coù theå hieåu ñöôïc. Neáu khoâng, ñoøi hoûi baïn caàn phaûi ñoäng naõo hoaëc tìm toøi hôi nhieàu. Naøo, chuùng ta baét ñaàu ñi thoâi! PHP xöû lyù caùc bieán raát linh ñoäng. Noù coù theå nhaän bieát ñöôïc kieåu cuûa bieán vaø laøm cho cuù phaùp caâu leänh ñôn giaûn hôn. Ai ñaõ töøng laäp trình vôùi C, Java hoaëc Perl seõ caûm thaáy raát deã daøng khi söû duïng PHP. Tuy nhieân vieäc deã daõi naøy cuõng gaây ra moät soá trôû ngaïi nhaát ñònh. Taát caû nhöõng bieán khai baùo trong PHP ñeàu ñöôïc baét ñaàu vôùi daáu ñoâ la ($). Duø cho bieán cuûa baïn kieåu chuoãi, nguyeân hay thaäp phaân hoaëc thaäm chí laø maûng thì chuùng khoâng coù gì khaùc bieät nhau. PHP chæ theo doõi döõ lieäu chöùa trong bieán thay ñoåi nhö theá naøo thoâi. Noùi chung, khi laøm vieäc vôùi PHP baïn seõ quan taâm ñeán 3 vò trí khaùc nhau cuûa bieán ñoù laø: (1) khai baùo ngay trong maõ leänh PHP, (2) chuyeån tieáp töø moät trang HTML hoaëc (3) laø bieán saün coù trong cuûa heä thoáng PHP. Chuùng ta seõ tìm hieåu veà töøng loaïi treân ôû phaàn tieáp theo. Neân löu yù raèng bieán cuõng coù theå ñöôïc chuyeån tieáp töø caùc nôi khaùc nhö töø caùc URL hoaëc töø caùc SESSION.
Gaùn bieán trong moät Script Baïn khoâng caàn phaûi khai baùo EXPLICIT cho bieán nhö trong moät soá ngoân ngöõ khaùc. Chæ caàn khai baùo teân bieán laø noù seõ saün saøng laøm vieäc. Baïn haõy xeùt caùc ví duï sau ñeå hieåu caùch khai baùo bieán trong PHP uyeån chuyeån nhö theá naøo: $a $b $c $d
= = = =
"Toi thich hoc PHP"; //day la bien chuoi 4; //day la bien so 4.837; //day la bien so thuc "2"; //day cung la bien chuoi
Ñeå yù raèng daáu = laø daáu duøng ñeå gaùn. Coøn khi thöïc hieän pheùp so saùnh baèng thì baïn duøng hai daáu baèng (= = ). Ví duï: IF ($x= =1)
PHP raát thoâng minh trong vieäc bieán ñoåi kieåu. Ví duï, baïn thöïc hieän pheùp coäng moät soá nguyeân vôùi moät chuoãi chöùa kyù töï soá (trong ví duï treân laø $b vaø $d). $a $b $c $d
= = = =
"Toi thich hoc PHP"; //day la bien chuoi 4; //day la bien so 4.837; //day la bien so thuc "2"; //day cung la bien chuoi
$e = $b + $d; echo $e; PHP seõ nhaän ra raèng baïn muoán xem chuoãi trong $d (chuoãi "2") nhö laø moät soá nguyeân. Theá laø noù seõ hoaùn chuyeån sang trò nguyeân vaø thöïc hieän pheùp toaùn coäng cho ra keát quaû laø $e = 6. Ngoaøi ra, PHP coøn coù theå hieåu ñöôïc caùc chuoãi vöøa soá vöøa chöõ nhö ví duï sau: $a = 2; $b = "2 con heo con"; $c = $a + $b; Keát quaû cho ra laø $c = 4. Neáu moät soá nguyeân hay thaäp phaân ñöùng ôû vò trí ñaàu moät chuoãi thì PHP coù theå hieåu ñöôïc nhö ví duï treân. Töông töï, PHP thöïc hieän töông töï ñoái vôùi caùc kieåu soá khaùc nhau: $f = 2; //$f la mot so nguyen $g = 1.444; // $g la mot so thuc $f = $f + $g; //$f tu bien doi thanh so thuc
Vieäc xöû lyù naøy thaät laø hay, nhöng noù coù theå daãn ñeán moät soá raéc roái ñoù laø seõ coù nhöõng luùc baïn khoâng bieát ôû taïi thôøi ñieåm naøo baïn seõ laøm vieäc vôùi kieåu cuûa bieán laø kieåu gì. Toâi seõ trình baøy trong phaàn Kieåm Tra Bieán.
Qui ñònh veà chuoãi Trong caùc ví duï treân, baïn thaáy taát caû caùc chuoãi ñeàu ñöôïc bao trong daáu nhaùy ñoâi. Coù hai caùch khaùc ñeå baïn theå hieän moät cho PHP hieåu ñoù laø chuoãi. Trong moät chuoãi maø baïn ñaõ bao laïi baèng caëp nhaùy ñoâi "...", xong baïn cheøn moät bieán vaøo giöõa, thì PHP vaãn hieåu ñöôïc bieán ñoù. Ví duï: $my_name = "Jay"; $phrase = "Hello, my name is, $my_name"; echo $phrase; Keát quaû cho ra laø: Hello, my name is, Jay. Thaät khaùc thöôøng phaûi khoâng caùc baïn?! (Ñaùng leõ ra daáu nhaùy " thöù hai phaûi sau chöõ is roài ñaët moät daáu coäng chuoãi vôùi bieán $my_name)
Trong tröôøng hôïp sau ñaây, toâi muoán xuaát ra moät chuoãi: Toâi ñaêng kyù hosting heát $20 thì phaûi laøm sao? Bôûi vì trong chuoãi naøy coù chöùa $, ñieàu naøy seõ laøm cho PHP hieåu ñoù laø moät bieán môùi. Chuùng ta xem caùch giaûi quyeát nhö sau: Neáu nhö trong chuoãi baïn muoán coù chöùa caùc kyù töï ñaëc bieät nhö: daáu nhaùy ñoâi "", daáu slash \, daáu ñoâ la $ , baïn phaûi söû duïng ñeán kyù töï chuyeån (goïi laø daáu escape) ñoù laø daáu slash (\). Toâi quen ñoïc daáu / laø "daáu suyeät traùi" vaø \ laø "daáu suyeät phaûi".
Giaû söû, ñeå xuaát ra maøn hình moät doøng chöõ:
"; //if the form has been submitted, this portion will
//run and make an assignment to $your_name. } elseif (isset($submit) && empty($your_name)) { $your_name = $first_name . " " . $last_name; echo "Thank you, $your_name"; } Sau khi chaïy chöông trình naøy, choïn refresh treân trình duyeät. Baïn seõ thaáy script seõ nhôù ñöôïc raèng baïn laø ai. Caùc haøm setcookie() vaø session_start() neân ôû vò trí gaàn ñaàu taäp tin. Neáu baïn thöû chuyeån ñeán trình duyeät tröôùc ñeå xaùc laäp moät cookie baïn seõ nhaän ñöôïc moät thoâng baùo loãi.
Bieán saün coù
Coù raát nhieàu bieán saün coù cuûa PHP vaø Server. Baïn coù theå lieät keâ moät danh saùch ñaày ñuû baèng caùch söû duïng leänh phpinfo() ñeå xem. Baïn haõy taïo moät file php vaø cho chaïy thöû xem: Baïn coù theå söû duïng caùc bieán naøy baèng nhieàu caùch thöùc khaùc nhau. Toâi seõ trình baøy moät sau ngay sau ñaây, vaø seõ chæ ra baïn neân duøng vaøo tröôøng hôïp naøo. Moät soá bieán ñeán töø PHP engine, moät soá khaùc baét nguoàn töø Webserver.
Bieán saün coù cuûa PHP PHP_SELF
Bieán naøy nhaän giaù trò laø ñòa chæ hieän taïi cuûa taäp tin .php ñang ñöôïc duyeät. Ñòa chæ naøy seõ laø ñòa chæ ñaày ñuû töø goác (baét ñaàu töø http://) . Baïn seõ söû duïng noù khi muoán truy caäp laïi chính trang web ñang thi thaønh. Xeùt ví duï sau, ñaây laø moät form töông töï nhö form sign.php maø caùc baïn ñaõ coù dòp xeùt qua. Neáu khaùch thöïc hieän thao taùc khaùc vôùi submit thì chính form naøy seõ ñöôïc thi haønh laïi: if(isset($submit)) { //Xuat ra thong bao tai day echo "Cam on ban da submit"; } else { ?>
> first name last name
} ?>
HTTP_POST_VARS
Ñaây laø moät maûng chöùa taát caû caùc bieán ñöôïc chuyeån tieáp thoâng qua POST method töø moät form. Baïn coù theå truy caäp töøng bieán rieâng reõ nhö laø moät phaàn töû cuûa maûng lieân hôïp (ví duï: $PHP_POST_VARS["myname"]).
HTTP_GET_VARS
Ñaây laø moät maûng chöùa taát caû caùc bieán ñöôïc chuyeån tieáp thoâng qua GET method. Baïn coù theå truy caäp töøng bieán rieâng reõ nhö laø moät phaàn töû cuûa maûng lieân hôïp (ví duï: $PHP_GET_VARS["myname"]).
HTTP_COOKIE_VARS
Taát caû caùc cookie chuyeån ñeán trình duyeät ñeàu coù theå ñöôïc truy xuaát trong maûng lieân hôïp naøy. Noù bao goàm caû session cookie. Neáu baïn coøn thaéc maéc cookie seõ thi haønh nhö theá naøo thì haõy xem haøm phpinfo() ñeå bieát ñöôïc trình duyeät cuûa baïn ñang chuyeån ñeán server nhöõng gì.
BIEÁN CUÛA APACHE
Apache coù saün raát nhieàu bieán. Toâi khoâng trình baøy ñaày ñuû taát caû caùc bieán ra ñaây. Caùc bieán baïn söû duïng, chuùng tuyø thuoäc vaøo xaùc laäp hieän taïi cuûa baïn nhö theá naøo. Sau ñaây laø moät soá bieán maø coù leõ baïn seõ söû duïng thöôøng xuyeân trong chöông trình cuûa baïn.
DOCUMENT_ROOT
Bieán naøy traû veà ñöôøng daãn cuûa Webserver. Bieán naøy ñöôïc toâi söû duïng trong xuyeân suoát quyeån saùch naøy. Haõy xeùt ví duï sau: include"$DOCUMENT_ROOT/book/functions/charset.php"; Baèng caùch söû duïng bieán DOCUMENT_ROOT thay vì duøng ñöôøng daãn tuyeät ñoái, chuùng ta coù theå di chuyeån toaøn boä moät thö muïc sang moät Apache Server khaùc maø khoâng lo laéng raèng ñöôøng daãn seõ bò sai leäch trong include path. Neân nhôù raèng neáu nhö baïn khoâng söû duïng Apache Server thì bieán naøy khoâng söû duïng ñöôïc. Neáu baïn söû duïng include_path trong taäp tin php.ini,
baïn khoâng caàn phaûi lo laéng phaûi xaùc ñònh ñöôøng daãn nhö theá naøo bôûi vì PHP seõ duyeät heát taát caû caùc thö muïc vaø tìm ra taäp tin baïn ñaõ chæ ñònh.
HTTP_USER_AGENT
Baát kyø ai ñaõ töøng thieát keát Web site ñeàu hieåu raèng taàm quan troïng cuûa vieäc nhaän daïng ñöôïc trình duyeät cuûa ngöôøi söû duïng laø gì. Moät soá trình duyeät thì khoâng söû duïng ñöôïc JavaScript, moät soá khaùc thì ñoøi hoûi daïng HTML ñôn giaûn. Bieán user_agent cung caáp cho baïn khaû naêng uyeån chuyeån ñoái vôùi töøng trình duyeät khaùc nhau. Moät user_agent chuaån coù daïng nhö theá naøy: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98) Neáu baïn phaân tích chuoãi naøy ra baïn seõ bieát ñöôïc nhöõng gì baïn caàn tìm. Coù theå baïn chæ thích haøm get_browser() cuûa PHP. Veà lyù thuyeát maø noùi, haøm naøy ñònh nghóa khaû naêng cho pheùp cuûa trình duyeät cuûa user ñang söû duïng. Cho neân baïn coù theå bieát ñöôïc laø chöông trình cuûa baïn ñang phuïc vuï toát hay khoâng. Caùc saùch PHP coù nhöõng höôùng daãn veà caùch caøi ñaët vaø söû duïng get_browser(), nhöng toâi khuyeân baïn khoâng neân söû duïng noù. Bôûi vì söû duïng get_browse baïn seõ ñöôïc baûo raèng IE 5 duøng cho PC vaø Netscape 4.01 duøng cho Mac coù hoã trôï CSS (cascading stylesheets) vaø JavaScript. Nhöng baát kyø ngöôøi söû duïng naøo cuõng bieát raèng: vieát leänh DHTML
ñeå chaïy treân caû hai moâi tröôøng trình duyeät naøy laø moät coâng vieäc phöùc taïp. Thoâng tin baïn nhaän ñöôïc töø get_browser() coù theå daãn ñeán nhöõng tính naêng giaû trong baûo maät. Caùch toát nhaát laø baïn söû duïng HTTP_USER_AGENT vaø thöïc hieän quyeát ñònh cuûa mình döïa treân trình duyeät hoaëc platform xaùc ñònh naøo ñoù.
REMOTE_ADDR
Duøng ñeå laáy ñòa chæ IP cuûa user. Tuy nhieân coù nhöõng user am hieåu chuyeän naøy vaø coù theå hoï thay ñoåi IP cuûa maùy mình. Cho neân khoâng laáy gì ñeå ñaûm baûo raèng: moät ñòa chæ IP chaén chaén laø cuûa moät user naøo ñoù. Baïn söû duïng bieán naøy ñeå theo doõi söï truy nhaäp cuûa moät user nhöng noù chæ mang tính töông ñoái thoâi.
REQUEST_URI
Bieán naøy cuõng gioáng nhö bieán PHP_SELF. Ngoaøi ra noù coøn chöùa theâm tham soá trong ñòa chæ truy vaán . Neáu baïn truy caäp vaøo ñòa chæ: http://www.mydomain.com/info/products/index.php?id=6 Thì bieán REQUEST_URI cuûa baïn coù giaù trò laø: info/products/index.php?id=6
SCRIPT_FILENAME
Bieán naøy chöùa toaøn boä ñöôøng daãn cuûa taäp tin.
Kieåm tra bieán
ÔÛ treân chuùng ta ñaõ noùi nhieàu veà Bieán. Nhö caùc baïn bieát ñoù, teân cuûa moät bieán khoâng quan troïng baèng giaù trò maø noù chöùa trong ñoù. Nhö toâi ñaõ noùi Bieán trong PHP raát uyeån chuyeån. Ñieàu naøy phaùt sinh söï baát lôïi laø baïn seõ khoâng bieát ôû taïi moät thôøi ñieåm naøo ñoù thì bieán naøy seõ mang giaù trò gì. Do ñoù baïn caàn phaûi thöïc hieän thao taùc kieåm tra bieán.
isset( )
Haøm naøy thöïc hieän vieäc kieåm tra bieán coù chöùa giaù trò hay khoâng. Noù seõ traû veà giaù trò TRUE hoaëc FALSE. Neáu bieán chöa ñöôïc xaùc laäp thì trò isset() seõ laø false. Baïn haõy xem xeùt ví duï sau, noù thi haønh moät query MySQL. Baïn ñaõ bieát raèng moät field trong database coù theå chöùa trò null hoaëc chuoãi roãng. Vôùi vieäc söû duïng haøm isset() baïn seõ kieåm tra vaø phaân bieät ñöôïc hai giaù trò treân. Trong ñoaïn leänh PHP beân döôùi. Trong ñoù bieán $query laø moät phaùt bieåu SELECT laáy döõ lieäu submit töø form cuûa user. $result = mysql_query($query) or die (mysql_error()); $number_cols = mysql_num_fields($result);
echo "
query: $query \n"; //layout table header echo "
\n"; echo "\n"; for ($i=0; $i<$number_cols; $i++) { echo "", mysql_field_name($result, $i), " \n"; } echo " \n";//end table header //layout table body while ($row = mysql_fetch_row($result)) { echo "\n"; for ($i=0; $i<$number_cols; $i++) { echo ""; if (!isset($row[$i])) //test for null value {echo "NULL";} else {echo $row[$i];} echo " \n";
} echo " \n"; } echo "
"; Löu yù raèng daáu chaám than (!) coù nghóa laø phuû ñònh. Töùc laø neáu $var coù giaù trò null thì: isset($var) cho ra giaù trò False !isset($var) cho ra giaù trò True
empty()
Haøm empty() coù veû ngöôïc ngaïo so vôùi haøm isset(). Noù seõ cho ra trò True neáu $var coù trò null, chuoãi roãng hoaëc soá 0. Haøm naøy thöôøng ñöôïc söû duïng ñeå kieåm tra xem user coù nhaäp trò vaøo trong form hay khoâng: if(empty($first_name)) { echo "Ban can phai nhap ten cua minh"; exit;
}
is_int( )
Haøm naøy ñeå kieåm tra bieán coù phaûi laø soá nguyeân hay khoâng. Coù 2 cuù phaùp khaùc cho cuøng keát quaû nhö noù laø: is_integer vaø is_long(). Baïn söû duïng haøm naøy khi khoâng chaéc raèng bieán laø moät trò nguyeân hay chuoãi. Ví duï: $a = "222"; $b = 22; is_int($a) cho ra trò False is_int($b) cho ra trò True Töông töï baïn seõ coù moät loaït haøm kieåm tra kieåu cuûa bieán sau ñaây:
is_double() Kieåm tra soá kieåu double (daáu phaåy ñoäng). Haøm thay theá: is_float() vaø is_real().
is_string( )
Kieåm tra kieåu chuoãi.
is_array( )
Kieåm tra kieåu maûng.
is_bool( )
Kieåm tra kieåu boolean (TRUE vaø FALSE)
is_object( )
Kieåm tra bieán kieåu object. Baïn seõ tìm hieåu kieåu object trong caùc phaàn sau.
gettype( )
Haøm naøy seõ cho baïn bieát kieåu cuûa bieán nhö: string, double, integer, array, hoaëc boolean. Ngoaøi ra noù coù traû veà caùc kieåu nhö object, class. Baïn seõ khaûo saùt kyõ veà vieäc laäp trình höôùng ñoái töôïng trong caùc phaàn sau ñeå bieát theâm veà object vaø class.
Löu yù trò cuûa haøn gettype() traû veà luoân laø moät chuoãi: "string", "integer", "double" v.v. Baïn haõy xem ví duï sau: $str = "Day la mot chuoi"; $type = gettype($str); if ($type == "string") { echo "Dung vay"; }
Ñoåi kieåu cuûa bieán
Baïn seõ söû duïng 3 caùch ñeå ñoåi kieåu cuûa bieán.
Phöông phaùp type casting
Phöông phaùp naøy raát ñôn giaûn: Baïn chæ caàn ghi teân kieåu ra, ñoùng ngoaëc ñôn laïi, roài ñaët tröôùc bieán. Töùc khaéc bieán seõ bò ñoåi theo kieåu maø baïn muoán. Caùch thöùc: (kieåu) $bieán Ví duï: $a = $b = echo echo
1; (string)$a; //soá 1 seõ bieán thaønh chuoãi 1 gettype($a), "
\n"; gettype($b), "
\n";
Keát quaû cho ra laø: integer string
Söû duïng haøm settype( )
Haøm naøy coù 2 ñoái soá. Thöù nhaát laø teân bieán, thöù nhì laø kieåu. Öu ñieåm cuûa noù laø noù coù theå cho ra keát quaû FALSE neáu nhö vieäc hoaùn ñoåi khoâng ñöôïc. Caùch thöùc: settype($bieán, "kieåu") Ví duï: $a = 1; settype($a, "string");
Söû duïng haøm intval( ), doubleval( ), vaø stringval( )
Phöông phaùp naøy thöôøng ñeå baïn aùp duïng nhanh trong khi tính toaùn. Coù leõ nhìn teân haøm baïn cuõng bieát ñöôïc chöùc naêng cuûa noù roài. Haõy xeùt ví duï sau: $a = "43";/ /43 laø kieåu chuoãi $b = (intval($a) * 2);
Bieán cuûa bieán Nghe qua coù veû laï laï, nhöng ñaây laø moät "ñoäc chieâu" cuûa PHP. Vôùi caùch thöùc naøy baïn seõ laáy giaù trò cuûa moät bieán ñeå hình thaønh teân cuûa moät bieán môùi. Caùch thöùc: $$bieán Ví duï: $a = ‘khai’; $$a = ‘Chao moi nguoi’; Baïn seõ thaáy trong ví duï treân moät bieán môùi ñöôïc hình thaønh ñoù laø $khai chöùa giaù trò laø "Chao moi nguoi" Xeùt theâm ví duï sau, trong ñoù $tacgia laø moät maûng lieân hôïp. $tacgia = array ("ho"=>"Tong", "ten"=>"Khai"); while (list($field,$value) = each($tacgia))
{ $field = "bien_$field"; $$field = $value; } echo $bien_ho, " ", $bien_ten; ?> Khi chaïy chöông trình, caùc bieán sau seõ ñöôïc taïo $bien_ho, $bien_ten vaø ghi ra maøn hình: Tong Khai
Toùm taét
Baïn ñaõ tìm hieåu caùc bieán trong PHP. Baïn thaáy PHP xöû lyù caùc bieán linh hoaït hôn nhieàu so vôùi caùc ngoân ngöõ khaùc. Coøn moät vaán ñeà khaù quan troïng ñoái vôùi bieán ñoù laø scope baïn cuõng seõ bieát kyõ veà noù ôû trong caùc phaàn sau cuûa giaùo trình naøy.
(Coøn tieáp)