Mÿc tiêu cÿa môn hác/mô đun: Về ki¿n thức - Phát bißu đ°ợc các khái niám về c¢ bÁn về Internet và dịch vÿ WWW; - Hißu đ°ợc cách thức ho¿t đßng cāa dịch vÿ WWW và giao thức HTTP; - Trình
Trang 1ĀY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH
TR¯äNG CAO ĐẲNG BÁCH KHOA NAM SÀI GÒN
GIÁO TRÌNH MÔN HàC/MÔ ĐUN: LÀP TRÌNH WEB CN BÀN
NGÀNH/NGHÀ: TIN HàC ĀNG DþNG
TRÌNH Đà: CAO ĐẲNG
Ban hành kèm theo Quy ết định số: 459/QĐ-NSG, ngày 31 tháng 08 năm 2022
c ủa Hiệu trưởng Trường Cao Đẳng Bách Khoa Nam Sài Gòn
Tp Hß Chí Minh, nm 2022
Trang 2TUYÊN BỐ BÀN QUYÀN
Tài liáu này thußc lo¿i sách giáo trình nên các nguãn thông tin có thß đ°ợc phép dùng nguyên bÁn hoặc trích dùng cho các mÿc đích về đào t¿o và tham khÁo Mọi mÿc đích khác mang tính lách l¿c hoặc sÿ dÿng vái mÿc đích kinh doanh thi¿u lành m¿nh s¿ bị nghiêm c¿m
Trang 3LäI GIâI THIÞU
Môn học này thußc khái ki¿n thức chuyên môn nghề trong ch°¢ng trình đào t¿o ngành tin học ứng dÿng há cao đẳng LÁp trình web cn bÁn là môn học bắt bußc trong ch°¢ng trình ngành Tin học ứng dÿng trình đß cao đẳng
Nßi dung giáo trình gãm 4 bài:
Tp HCM, ngày 31 tháng 08 nm 2022 Tham gia biên so¿n
1 Chā biên: ThS Lê Thị Thùy Trang
2 &&&&
3 &&&&
Trang 4MỤC LỤC
LâI GIàI THIàU 3
BÀI 1 TäNG QUAN 7
1 Mÿc tiêu: 7
2 Nßi dung bài: 7
2.1 Các khái niám c¢ bÁn 7
2.1.1 Các khái niám c¢ bÁn 7
2.1.2 Các dịch vÿ cāa www 8
2.1.3 Giao thức http 9
2.2 Cài đặt và thực thi 9
2.2.1 Cài đặt phần mềm 9
2.2.2 C¿u hình và sÿ dÿng phần mềm 10
Bài 2: Ngôn ngÿ PHP 11
1 Mÿc tiêu: 11
2 Nßi dung bài: 11
2.1 PHP c¢ bÁn 11
2.1.1 Đặc đißm 11
2.1.2 Ch°¢ng trình <Hello World= 12
2.1.3 Khai báo bi¿n, toán tÿ, phép toán 13
2.2 Lựa chọn và vòng lặp 18
2.2.1 C¿u trúc lựa chọn 18
2.2.2 C¿u trúc lặp 22
2.3 Chuỗi trong PHP 25
2.3.1 Các hàm xÿ lý chuỗi th°ãng dùng 25
2.4 MÁng 26
2.4.1 Cú pháp khai báo 26
2.5 Hàm 31
2.5.1 Khai báo 31
2.5.2 Sÿ dÿng hàm 33
Trang 5Bài tÁp 38
Bài 3: Bißu m¿u và PHP 40
1 Mÿc tiêu: 40
2 Nßi dung bài: 40
2.1 Ph°¢ng thức l¿y và l°u dÿ liáu từ bißu m¿u 40
2.1.1 Ph°¢ng thức POST/GET 40
2.1.2 Bài tÁp áp dÿng 42
2.2 Cookies – Session 42
2.2.1 Cookies 42
2.2.2 Session 45
2.3 TÁp tin và th° mÿc 47
2.3.1 TÁp tin 47
2.3.2 Th° mÿc 50
Bài tÁp: 51
Bài 4: MySQL 54
1 Mÿc tiêu: 54
2 Nßi dung bài: 54
2.1 Giái thiáu 54
2.1.1 Giái thiáu MySQL 54
2.1.2 Đặc đißm 54
2.1.3 Các kißu dÿ liáu trong MySQL 55
2.2 Thi¿t k¿ CSDL vái MySQL 58
2.2.1 T¿o CSDL 58
2.2.2 Sao l°u, phÿc hãi CSDL 66
2.3 Thao tác, xÿ lý dÿ liáu vái MySQL 67
2.3.1 Truy v¿n lọc dÿ liáu 67
2.3.2 Truy v¿n thêm, sÿa, xóa, cÁp nhÁt dÿ liáu 72
Trang 6GIÁO TRÌNH MÔN HàC/MÔ ĐUN
Tên môn hác/mô đun: LÀP TRÌNH WEB C¡ BÀN
Mã môn hác/mô đun: MH21
Vß trí, tính chất, ý nghĩa và vai trò cÿa môn hác/mô đun:
- Vị trí: Môn học này thußc khái ki¿n thức chuyên môn nghề trong ch°¢ng trình đào t¿o ngành tin học ứng dÿng há cao đẳng
- Tính ch¿t: LÁp trình web cn bÁn là môn học bắt bußc trong ch°¢ng trình ngành Tin học ứng dÿng trình đß cao đẳng
Mÿc tiêu cÿa môn hác/mô đun:
Về ki¿n thức
- Phát bißu đ°ợc các khái niám về c¢ bÁn về Internet và dịch vÿ WWW;
- Hißu đ°ợc cách thức ho¿t đßng cāa dịch vÿ WWW và giao thức HTTP;
- Trình bày đúng cú pháp cing nh° công dÿng cāa các câu lánh, c¿u trúc điều khißn, vòng lặp, mÁng trong PHP;
- Phát bißu đ°ợc công dÿng cāa các ph°¢ng thức l¿y dÿ liáu Trình bày đ°ợc các b°ác t¿o CSDL trong MySQL;
- Trình bày đ°ợc cú pháp câu lánh MySQL
Về kỹ nng:
- Cài đặt và sÿ dÿng đ°ợc phần mềm Wampp/Xampp;
- Có khÁ nng sÿ dÿng ngôn ngÿ CSS đß t¿o bá cÿc và định d¿ng trang web;
- T¿o và dÿng đ°ợc các hàm c¢ bÁn, thông dÿng đß sÿ dÿng trong lÁp trình PHP;
- Sÿ dÿng đ°ợc các ph°¢ng thức đß l¿y dÿ liáu trên bißu m¿u;
- Thi¿t k¿ bißu m¿u k¿t hợp vái các đái t°ợng Session và Cookies đß xÿ lý dÿ liáu;
Trang 7- T¿o và dÿng đ°ợc các hàm c¢ bÁn, thông dÿng đß sÿ dÿng trong lÁp trình PHP;
- Sÿ dÿng đ°ợc câu lánh SQL đß xÿ lý dÿ liáu theo yêu cầu;
- Thi¿t k¿ đ°ợc c¢ så dÿ liáu MySQL sÿ dÿng cho lÁp trình web
- Phát bißu đ°ợc các khái niám về c¢ bÁn về Internet và dịch vÿ WWW;
- Hißu đ°ợc cách thức ho¿t đßng cāa dịch vÿ WWW và giao thức HTTP;
- Cài đặt và sÿ dÿng đ°ợc phần mềm Wampp/Xampp
2 Nái dung bài:
2.1 Các khái nißm c¢ bÁn
2.1.1 Các khái nißm c¢ bÁn
- Máy chā web (web server): máy chā chuyên chia sẻ trang web
- Trình duyát web (web browser): ứng dÿng phía ng°ãi dùng đß k¿t nái vái máy chā web, l¿y thông tin từ máy chā và hißn thị thông tin trên cÿa så trình duyát
- M¿ng (network): há tháng trao đåi thông tin cho phép máy khách và máy chā
có thß giao ti¿p vái nhau
- Trang chā (HomePage) cāa mßt website là trang web đ°ợc må ra đầu tiên khi truy cÁp website đó Do đó, địa chỉ truy cÁp cāa mßt website chính là địa chỉ
Trang 8- Trang web tĩnh (static web page): trang web chỉ thay đåi nßi dung khi có sự tác đßng cāa ng°ãi t¿o ra nó
- Trang web đßng (dynamic web page) là trang web đ°ợc t¿o båi ch°¢ng trình hoặc mã kịch bÁn (script) ch¿y trên máy chā Nßi dung cāa trang web đßng có thß thay đåi mỗi lần đ°ợc yêu cầu
- PHP là <Hypertext Preprocessor=, đ°ợc sÿ dÿng rßng rãi trong lÁp trình web
và là ngôn ngÿ lÁp trình mã nguãn må
- File PHP có thß chứa text, HTML, CSS, JavaScript, và code PHP Code PHP đ°ợc thực thi phía máy chā (server) và k¿t quÁ đ°ợc trÁ về phía trình duyát (browser), file PHP có phần đuôi là <.php=
- PHP ch¿y trên đa nền tÁng nh° Windows, Linux, Mac OS X PHP t°¢ng thích vái hầu h¿t các máy chā web đ°ợc sÿ dÿng hián nay nh° Apache, IIS, &PHP
hỗ trợ nhiều há quÁn trị c¢ så dÿ liáu nh° MySQL, SQL Server, Postgree,&PHP là mißn phí PHP dß dàng đß tìm hißu và ch¿y hiáu quÁ phía máy chā
2.1.2 Các dßch vÿ cÿa www
Tå chức và khai thác thông tin trên web (WWW - World Wide Web): ng°ãi dùng có thß dß dàng truy cÁp đß xem nßi dung các trang web khi máy tính đ°ợc k¿t nái vái Internet
Tìm ki¿m thông tin trên Internet: dùng Google hoặc danh mÿc thông tin Ng°ãi dùng nhanh chóng tìm đ°ợc đúng thông tin cần thi¿t
Th° đián tÿ (E-mail): đây là dịch vÿ trao đåi thông tin trên Internet thông qua các hßp th° đián tÿ, đ°ợc sÿ dÿng rßng rãi r¿t phå bi¿n, tián lợi, nhanh chóng, vái chi phí th¿p
Hßi thÁo trực tuy¿n: Tå chức các cußc họp, hßi thÁo trực tuy¿n từ xa vái sự tham gia cāa nhiều ng°ãi å nhiều n¢i khác nhau Hình Ánh, âm thanh cāa hßi thÁo và cāa các bên tham gia đ°ợc truyền hình trực ti¿p qua m¿ng và hißn thị trên màn hình hoặc phát trên loa máy tính
Trang 9Đào t¿o qua m¿ng: ng°ãi học có thß truy cÁp Internet đß nghe các bài giÁng, trao đåi hoặc nhÁn các chỉ d¿n trực ti¿p từ giáo viên , nhÁn các bài tÁp hoặc các tài liáu học tÁp khác và nßp k¿t quÁ qua m¿ng mà không cần tái láp Đào t¿o qua m¿ng cho phép mọi ng°ãi "học mọi lúc, mọi n¢i"
2.1.3 Giao thāc http
HTTP là chÿ vi¿t tắt cāa HyperText Transfer Protocol, là mßt giao thức ứng dÿng đ°ợc sÿ dÿng th°ãng xuyên nh¿t trong bß các giao thức TCP/IP (gãm mßt nhóm các giao thức nền tÁng cho internet) Http ho¿t đßng dựa trên mô hình Client (máy khách) – Server (máy chā)
Trang 102.2.2 Cấu hình và sử dÿng phần mÁm
Cấu hình PHP:
Nh¿p vào bißu t°ợng WampServer, chuyßn đ¿n menu php và nh¿p vào tùy chọn php.ini Điều này s¿ må file php.ini trong trình so¿n thÁo plain text Điều chỉnh các cài đặt sau:
- Ghi nhÁt ký lỗi PHP - lo¿i bß ; å đầu dòng đß kích ho¿t:
Trang 11Bài 2: Ngôn ngữ PHP
1 Mÿc tiêu:
- Trình bày đúng cú pháp cing nh° công dÿng cāa các câu lánh, c¿u trúc điều khißn, vòng lặp, mÁng trong PHP;
- T¿o và dÿng đ°ợc các hàm c¢ bÁn, thông dÿng đß sÿ dÿng trong lÁp trình PHP
2 Nái dung bài:
2.1 PHP c¢ bÁn
2.1.1 Đặc điểm
Ngôn ngÿ lÁp trình PHP så hÿu tác đß xÿ lý mọi ho¿t đßng trong công viác khá nhanh chóng, mang đ¿n hiáu quÁ tái °u cao Điều này giúp cho viác truy cÁp website trå nên ån định h¢n, ngay cÁ trong tr°ãng hợp có hàng triáu dùng truy cÁp cùng mßt lúc
Ngoài ra, PHP còn có khÁ nng k¿t nái hàng triáu há quÁn trị c¢ så dÿ liáu khác nhau theo cách hoàn hÁo nh¿t Đây cing chính là y¿u tá khi¿n cho nó luôn đ°ợc
°u tiên sÿ dÿng khi thi¿t k¿ web h¢n so vái nhÿng ngôn ngÿ lÁp trình khác
H¢n nÿa, ngôn ngÿ lÁp trình này còn cung c¿p cho ng°ãi dùng mßt há tháng
dÿ liáu vô cùng đa d¿ng Lý do PHP så hÿu đ°ợc kho tài liáu phong phú nh° vÁy là båi vì ngay từ khi ra đãi, PHP đã đ°ợc định h°áng sÿ dÿng đß xây dựng và phát trißn nâng cao ứng dÿng web
Bên c¿nh đó, PHP còn cung c¿p các hàm phÿc vÿ cho nhu cầu gÿi và nhÁn mail, cùng nhÿng chức nng cần thi¿t đß làm viác vái cookie
PHP cing đ°ợc cßng đãng đánh giá là ngôn ngÿ đ¢n giÁn, dß sÿ dÿng ngay
cÁ vái nhÿng ng°ãi mái bắt đầu b°ác chân vào con đ°ãng lÁp trình
Các ch°¢ng trình vi¿t bằng PHP đều có khÁ nng ch¿y đ°ợc trên mọi nền tÁng
há điều hành mà không cần trÁi qua giai đo¿n sÿa đåi mã
Trang 12Khi sÿ dÿng PHP, b¿n hoàn toàn có thß yên tâm n¿u chẳng may gặp khó khn trong quá trình làm viác, båi ngôn ngÿ lÁp trình này så hÿu mßt cßng đãng hỗ trợ vô cùng m¿nh m¿, luôn sẵn sàng giúp đỡ mọi thành viên
Đặc biát là PHP đ°ợc xây dựng và phát trißn liên tÿc từ nhÿng chuyên gia lÁp trình hàng đầu trên toàn th¿ giái Chính vì vÁy mà ngôn ngÿ này ngày càng từng b°ác trå nên thân thián và hÿu ích h¢n vái ng°ãi dùng
Nh°ợc đißm:
- Há tháng bÁo mÁt v¿n ch°a thÁt sự an toàn do sÿ dÿng mã nguãn må
- Không phù hợp đß phát trißn các ứng dÿng web có nßi dung lán
- Do PHP ho¿t đßng theo kißu Weak Type, nên có nhiều lúc s¿ không cung c¿p thông tin chính xác cho ng°ãi dùng
- Đß sÿ dÿng đ°ợc framework PHP, b¿n cần phÁi học thêm Built In Functions nhằm h¿n ch¿ viác vi¿t l¿i chức nng 2 lần
- Sÿ dÿng nhiều tính nng framework trong PHP s¿ khi¿n ch¿t l°ợng web bị kém đi
2.1.2 Ch°¢ng trình <Hello World=
Ch°¢ng trình in ra màn hình chÿ <Hello World!=
Đß xu¿t mßt chuỗi ra màn hình b¿n dùng cú pháp lánh sau:
<?php echo "Hello World!"; ?>
Ví dÿ: Xu¿t ra dòng chÿ <Chào Mừng Các B¿n Đ¿n Vái LÁp Trình PHP=
- B°ác 1: B¿n må ứng dÿng
- B°ác 2: B¿n t¿o file hello.php nằm trong th° mÿc www cāa Server
- B°ác 3: Theo quy tắc å trên ta s¿ làm nh° sau:
<?php echo 'Chào Mừng Các B¿n Đ¿n Vái LÁp Trình PHP9; ?>
Hoặc
Trang 13<?php echo "Chào Mừng Các B¿n Đ¿n Vái LÁp Trình PHP"; ?>
- B°ác 4: Må trình duyát gõ vào đ°ãng d¿n localhost/hello.php
Ghi chú trong PHP:
PHP hỗ trợ cho chúng ta hai cách đß ghi chú:
- Ghi chú cho 1 dòng: // noi dung can ghi chu
- Ghi chú cho nhiều dòng: /*noi dung can ghi chu*/
<?php
echo 'Chào Mừng Các B¿n Đ¿n Vái PHP'; // dòng ghi chú
/*Hoặc dòng ghi chú*/
?>
2.1.3 Khai báo bi¿n, toán tử, phép toán
Khai báo biến số trong php:
Bi¿n là mßt định danh, nó dùng đß l°u trÿ các giá trị và nó có thß dùng phép gán đß thay đåi giá trị Cú pháp cāa bi¿n bắt đầu bằng d¿u đô la $ và ti¿p theo là các chÿ, sá, d¿u g¿ch d°ái Ký tự đầu tiên cāa tên bi¿n phÁi là chÿ hoặc là d¿u g¿ch d°ái, không đ°ợc là sá
PHP là mßt ngôn ngÿ có phân biát chÿ hoa chÿ th°ãng Ví dÿ: $sinhvien khác $SinhVien
Trang 14Đß gán giá trị cho bi¿n ta dùng toán tÿ phép gán =
Hiển thị giá trị của biên ra màn hình:
Thay vì xu¿t trực ti¿p chuỗi thì ta xu¿t giá trị cāa bi¿n ra màn hình
Khai báo hằng:
Hằng cing là mßt bi¿n nh°ng b¿n không thß thay đåi giá trị cāa nó Tuy
nhiên cách khai báo bi¿n và hằng sá thì l¿i khác nhau
Cú Pháp: define(8ten_hang9, 8gia_tri9);
Trong đó:
- define: hàm t¿o bi¿n hằng
- ten_hang: là tên bi¿n hằng
- gia_tri: giá trị cāa hằng
Biểu thức:
Bißu thức là mßt tå hợp các toán h¿ng và toán tÿ Toán tÿ thực hián các thao tác nh° cßng, trừ, nhân, chia, so sánh, & Toán h¿ng là nhÿng bi¿n hay là nhÿng giá
Trang 15trị mà các phép toán đ°ợc thực hián trên nó Ví dÿ $a + $b thì $a và $b đ°ợc gọi là toán h¿ng, d¿u + đ°ợc gọi là toán tÿ, cÁ 2 k¿t hợp l¿i thành mßt bißu thức ($a + $b)
Mỗi bißu thức chỉ có mßt giá trị nh¿t định Ví dÿ ta có bißu thức ($a + $b) thì bißu thức này có giá trị là tång cāa $a và $b
Toán tử gán (Assignment Operator):
Đây là toán tÿ thông dÿng nh¿t trong mọi ngôn ngÿ, ta dùng d¿u = đß gán giá trị cho mßt bi¿n b¿t kỳ nào đó
Các phép toán th°ãng đ°ợc thực hián theo mßt thứ tự cÿ thß gọi là đß °u tiên
đß đ°a ra giá trị cuái cùng (s¿ đề cÁp đ¿n sau) Các bißu thức sá học trong các ngôn ngÿ đ°ợc thß hián bằng cách sÿ dÿng các toán tÿ sá học cùng vái các toán h¿ng d¿ng
sá hoặc ký tự (bi¿n) Nhÿng bißu thức này gọi là bißu thức sá học
Trang 16Toán tÿ quan há cing là mßt định nghĩa trong bài toán tÿ và bißu thức trong php, đ°ợc dùng đß kißm tra mái quan há giÿa hai bi¿n hay giÿa mßt bi¿n và mßt hằng
sá Ví dÿ kißm tra 2 bi¿n $a và $b xem bi¿n nào lán h¢n ta làm nh° sau: ($a > $b) và k¿t quÁ cāa bißu thức này s¿ trÁ về kißu boolean TRUE hoặc FALSE
L°u Ý: T¿t cÁ các toán tÿ quan há nào có 2 ký tự trå lên đều phÁi ghi liền không đ°ợc có khoÁng trắng Ví dÿ ! = là sai vì có khoÁng trắng giÿa 2 ký tự
Toán Tÿ Quan Há === dùng đß so sánh giá trị giÿa các bi¿n và hằng đúng theo giá trị và kißu dÿ liáu cāa nó, n¿u ta sÿ dÿng 2 d¿u bằng == đß so sánh ($a == $b) thì lúc này $a và $b chỉ so sánh giá trị và trÁ về true n¿u $a bằng $b
GiÁ sÿ $a = 91232 là kißu string, $b = 123 là kißu int thì phép ($a == $b) cho k¿t quÁ là true, còn phép ($a === $b) s¿ cho k¿t quÁ là false vì 2 bi¿n tuy giá trị bằng nhau nh°ng không cùng kißu dÿ liáu
Toán tử luận lý:
Toán tÿ luÁn lý là ký hiáu dùng đß k¿t hợp hay phā định bißu thức có chứa các toán tÿ quan há, nhÿng bißu thức dùng toán tÿ luÁn lý trÁ về giá trị TRUE hoặc FALSE
Trang 17L°u ý: T¿t cÁ các toán tÿ luÁn lý nào có 2 ký tự trå lên đều phÁi ghi liền
không đ°ợc có khoÁng trắng Ví dÿ | | là sai vì có khoÁng trắng giÿa 2 ký tự
K¿t quÁ cāa đo¿n mã trên bi¿n $check s¿ có giá trị là TRUE vì:
- ($a > $b) <=> (100 < 200) => TRUE
- ($tong > 200) <=> (300 > 200) => TRUE
- $check = (1) && (2) <=> TRUE && TRUE => TRUE
Đß °u tiên toán tÿ luÁn lý: NOT AND OR
Đß °u tiên các toán tÿ:
Đß °u tiên các toán tÿ thi¿t lÁp thứ tự °u tiên tính toán cāa mßt bißu thức Tóm l¿i đß °u tiên trong PHP đề cÁp đ¿n thứ tự các phép tính mà PHP s¿ biên dịch tr°ác Các toán tÿ và bißu thức trong php có sự liên há l¿n nhau, toán tÿ k¿t hợp toán h¿ng t¿o thành bißu thức
Trang 18Nhÿng toán tÿ nằm cùng mßt hàng có cùng đß °u tiên và c¿p đß °u tiên đi từ trên xuáng d°ái Viác tính toán bißu thức sá học s¿ đ°ợc tính toán từ trái qua phÁi và °u tiên trong ngoặc tr°ác k¿t hợp vái đß °u tiên trong bÁng (nh° trong tính toán th°ãng thì nhân chia tr°ác, cßng trừ sau °u tiên trong ngoặc)
2.2 Lựa chán và vòng lặp
2.2.1 Cấu trúc lựa chán
Câu lệnh điều kiện if
Câu lánh if cho phép ta đ°a ra các quy¿t định dựa trên viác kißm tra điều kián nào đó đúng (true) hay sai (false) Cú pháp nh° sau:
Ví dÿ: Ch°¢ng trình kißm tra mßt sá chẵn hay lẻ
VÁn dÿng: Ch°¢ng trình kißm tra có phÁi nm nhuÁn hay không?
(Nm nhuÁn là nm chia h¿t cho 4 hoặc 400 nh°ng không chia h¿t cho 100)
Câu lệnh If else trong php
Lánh if dùng đß kißm tra mßt điều kián có đúng hay không? GiÁ sÿ tr°ãng hợp ng°ợc l¿i điều kián không đúng thì s¿ thực hián điều gì ? đß giÁi đáp câu hßi này ta s¿ nghiên cứu đ¿n lánh if else trong php
Trang 19Ý nghĩa:
N¿u $bieuthuc đúng thì Nhÿng Câu Lánh 1 s¿ đ°ợc thực hián và Nhÿng Câu Lánh 2 s¿ không đ°ợc thực hián
Ng°ợc l¿i thì nó s¿ không cần kißm tra nÿa và thực hián Nhÿng Câu Lánh 2
Ví dÿ: kißm tra nm nay là nm chẵn hay nm l¿, xu¿t ra màn hình k¿t quÁ chẵn hay l¿
Câu lệnh if else lồng nhau:
Đây là phần khó nh¿t trong t¿t cÁ các v¿n đề cāa câu lánh if else trong php, å bên trên ta chỉ ch¿y câu lánh if else mßt tầng, å phần này ta s¿ nghiên cứu đ¿n if else nhiều tầng lãng nhau, có nghĩa là câu if con nằm trong câu if cha
Trang 20Ví dÿ: Kißm tra sô nhÁp vào có phÁi là sá chẵn hay không? N¿u là sá chẵn thì kißm tra ti¿p sá đó có lán h¢n100 hay không, n¿u lán h¢n 100 thì xu¿t ra màn hình
<Sá chẵn và lán h¢n 1003, ng°ợc l¿i xu¿t ra màn hình <Sá chẵn và nhß h¢n 1003
Câ u lệnh switch trong PHP:
Câu lánh switch trong php cho phép ta đ°a ra quy¿t định có nhiều cách lựa chọn đß giá trị cāa bißu thức truyền vào N¿u giá trị bißu thức truyền vào trùng vái các giá trị bißu thức điều kián thì các câu lánh bên trong bißu thức điều kián s¿ đ°ợc thực hián
Cú pháp:
Trong đó lánh switch, case và default là các từ khóa trong PHP Các chuỗi câu lánh có thß là lánh đ¢n (1 lánh) hoặc lánh ghép (k¿t hợp nhiều lánh) và không cần đặt trong cặp d¿u ngoặc nhọn {} ä mỗi dòng lánh lựa chọn (case) nó s¿ so sánh xem bi¿n truyền vào $variable có bằng vái bi¿n điều kián $value_1, $value_2 hay không,
Trang 21n¿u trùng vái case nào thì nhÿng câu lánh bên trong case đó s¿ đ°ợc thực hián, đãng thãi dòng lánh break s¿ k¿t thúc câu lánh switch N¿u không có lựa chọn (case) nào đúng thì mặc định nó s¿ ch¿y vào chuỗi dòng lánh trong default, lánh default trong mánh đề rẻ nhánh switch có thß có hoặc không
Giá trị å case chỉ ch¿p nhÁn các kißu dÿ liáu string, INT, boolean, null, foat hoặc là mßt bißu thức có k¿t quÁ trÁ về mßt trong nm lo¿i dÿ liáu đó và toán tÿ quan
há so sánh trong switch luôn luôn là ==
Ví dÿ: Vi¿t ch°¢ng nhÁp vào mßt sá, dùng lánh rẻ nhánh switch kißm tra sá nhÁp vào trÁ về giá trị chÿ cāa sá đó (1 Mßt)
VÁn dÿng: NhÁp vào nm b¿t kì, trÁ về k¿t quÁ Can, Chi cāa nm đó
Trang 222.2.2 Cấu trúc lặp
Vòng lặp là mßt mã lánh trong đó ch°¢ng trình đ°ợc thực hián lặp đi lặp l¿i nhiều lần cho đ¿n khi thßa mßt điều kián nào đó Vòng lặp là mßt khái niám c¢ bÁn trong lÁp trình c¿u trúc
$bieu_thuc_dieu_kien: là mßt bißu thức quan há xác định điều kián thoát khßi vòng lặp
$bieu_thuc_thay_doi_bien_dieu_khien: Xác định bi¿n điều khißn s¿ bị thay đåi nh° th¿ nào sau mỗi lần lặp đ°ợc lặp l¿i (th°ãng là tng hoặc giÁm giá trị cāa bi¿n điều khißn)
Ba bißu thức trên đ°ợc cách nhau båi d¿u ch¿m phẩy, vòng lặp s¿ lặp khi bißu thức điều kián đúng, khi bißu thức điều kián sai thì vòng lặp s¿ dừng và thoát
Trang 23Vòng lặp while và do while:
Cú pháp:
Trong đó $condition là điều kián đß dừng vòng lặp N¿u $condition có giá trị false thì vòng lặp k¿t thúc, ng°ợc l¿i vòng lặp s¿ ti¿p tÿc lặp Vòng lặp while s¿ lặp
vô h¿n n¿u bißu thức điều kián b¿n truyền vào luôn luôn đúng
Ví dÿ: Dùng vòng lặp while trong php liát kê các sá từ 1 tái 10
Vòng lặp do while
Vòng lặp while s¿ kißm tra điều kián tr°ác rãi thực hián câu lánh bên trong vòng lặp, còn vòng lặp do while thì ng°ợc l¿i s¿ thực hián câu lánh bên trong vòng lặp tr°ác rãi mái kißm tra điều kián N¿u điều kián đúng thì s¿ thực hián ti¿p vòng lặp k¿ ti¿p, n¿u điều kián sai thì s¿ dừng vòng lặp Vòng lặp do while trong php luôn luôn thực hián ít nh¿t mßt lần lặp vì nó thực hián tr°ác rãi mái kißm tra điều kián
Cú pháp:
Trang 24Vòng lặp foreach:
Cú pháp:
Hoặc
Ví dÿ:
Trang 25 strlen($string): đ¿m sá ký tự cāa chuỗi $string
str_word_count($str): trÁ về sá từ trong chuỗi $str
strtolower($str): chuyßn t¿t cÁ các ký tự chuỗi $str sang chÿ th°ãng
strtoupper($string ): vhuyßn t¿t cÁ các ký tự chuỗi $str sang chÿ hoa
ucfirst( $string ): chuyßn ký tự đầu tiên chuỗi $string sang chÿ hoa
ucfirst( $string ): chuyßn ký tự đầu tiên trong chuỗi $string sang chÿ th°ãng
Trang 26 trim($string, $ky_tu): xóa ký tự $ky_tu nằm å đầu và cuái chuỗi $str, n¿u ta không nhÁp $ky_tu thì mặc định nó hißu là xóa khoÁng trắng.ề sá từ trong chuỗi $str
2.4 MÁng
2.4.1 Cú pháp khai báo
MÁng Array là mßt lo¿i bi¿n đặc biát, trong nó giÿ nhiều giá trị Mỗi giá trị trong mÁng đ°ợc gọi là phần tÿ cāa mÁng, các phần tÿ trong mÁng đ°ợc truy xu¿t thông qua tên bi¿n và ký hiáu [index], trong đó index đ°ợc gọi là chỉ sá cāa phần tÿ, chỉ sá này có thß là mßt sá nguyên hay là mßt chuỗi
Đß t¿o mÁng chúng ta sÿ dÿng hàm array()
array(
key => value, key2 => value2, key3 => value3,
Trang 27chỉ mÿc MÁng liên hợp s¿ có chỉ mÿc å d¿ng chuỗi đß mà b¿n có thß thi¿t lÁp mßt liên k¿t m¿nh giÿa key và value
- MÁng đa chiều: Mßt mÁng chứa mßt hoặc nhiều mÁng và các giá trị đ°ợc truy cÁp bằng cách sÿ dÿng nhiều chỉ mÿc có nghĩa là mỗi phần tÿ cing có thß là mßt mÁng Và mỗi phần tÿ trong mßt mÁng phÿ có thß là mßt mÁng, và cứ ti¿p tÿc nh° vÁy Các giá trị trong mÁng đa d¿ng đ°ợc truy cÁp båi sÿ dÿng nhiều chỉ mÿc
Trang 28array_diff_uassoc() So sánh key và value cāa mÁng, vái mßt hàm
kißm tra bå sung do ng°ãi dùng t¿o, và trÁ về
array_diff_ukey() So sánh key cāa mÁng, vái mßt hàm kißm tra
bå sung do ng°ãi dùng t¿o, và trÁ về các sự
array_fill_keys() Điền value vào mßt mÁng, chỉ rõ các key 5 array_filter() Lọc các phần tÿ cāa mßt mÁng båi sÿ dÿng
array_intersect_uassoc() So sánh các key và value trong mÁng, vái mßt
hàm kißm tra bå sung do ng°ãi dùng t¿o và trÁ
array_intersect_ukey() So sánh các key trong mÁng, vái mßt hàm
kißm tra bå sung do ng°ãi dùng t¿o và trÁ về
array_key_exists() Kißm tra xem key đã cho có tãn t¿i trong
array_map() Gÿi mỗi value cāa mßt mÁng tái mßt hàm do
ng°ãi dùng t¿o, mà trÁ về các value mái 4 array_merge() Sáp nhÁp mßt hoặc nhiều mÁng thành mßt
array_merge_recursive() Sáp nhÁp mßt hoặc nhiều mÁng thành mßt mÁng 4
Trang 29array_multisort() Sắp x¿p các mÁng đa chiều 4 array_pad() Chèn sá l°ợng item đã xác định vái mßt value
array_product() Tính toán tích các value trong mßt mÁng 5 array_push() Chèn mßt hoặc nhiều phần tÿ vào phần cuái
array_sum() TrÁ về tång các value trong mßt mÁng 4 array_udiff() So sánh các value cāa mÁng trong mßt hàm do
ng°ãi dùng t¿o và trÁ về mßt mÁng 5
array_udiff_assoc() So sánh các key cāa mÁng, và so sánh các
value cāa mÁng trong mßt hàm do ng°ãi dùng
array_udiff_uassoc() So sánh các key và value cāa mÁng trong mßt
hàm do ng°ãi dùng t¿o, và trÁ về mßt mÁng 5 array_uintersect() So sánh các value cāa mÁng trong mßt hàm do
ng°ãi dùng t¿o, và trÁ về mßt mÁng 5
Trang 30array_uintersect_assoc() So sánh các key cāa mÁng, và so sánh các
value cāa mÁng trong mßt hàm do ng°ãi dùng
array_uintersect_uassoc() So sánh các value cāa mÁng trong mßt hàm do ng°ãi dùng t¿o, và trÁ về mßt mÁng 5 array_unique() Gỡ bß bÁn sao các value từ mßt mÁng 4 array_unshift() Thêm mßt hoặc nhiều phần tÿ tái phần đầu
array_values() TrÁ về t¿t cÁ value cāa mßt mÁng 4 array_walk() Áp dÿng mßt hàm do ng°ãi dùng t¿o tái mỗi
array_walk_recursive() Áp dÿng mßt hàm mßt cách đá qui do ng°ãi
dùng t¿o tái mỗi thành viên cāa mßt mÁng 5 arsort() Sắp x¿p mßt mÁng vái thứ tự đÁo ng°ợc và
asort() Sắp x¿p mßt mÁng và duy trì liên k¿t chỉ mÿc 3 compact() T¿o mßt mÁng chứa các bi¿n và các value cāa
count() Đ¿m các phần tÿ trong mßt mÁng, hoặc các
thußc tính trong mßt đái t°ợng 3 current() TrÁ về phần tÿ hián t¿i trong mßt mÁng 3 each() TrÁ về cặp key và value hián t¿i từ mßt mÁng 3 end() Thi¿t lÁp con trß nßi bß cāa mßt mÁng tái phần
krsort() Sắp x¿p mßt mÁng bằng các key theo thứ tự
Trang 31ksort() Sắp x¿p mßt mÁng bằng các key 3
natcasesort() Sắp x¿p mßt mÁng båi sÿ dÿng mßt thuÁt toán
"natural order" không phân biát kißu chÿ 4 natsort() Sắp x¿p mßt mÁng båi sÿ dÿng mßt thuÁt toán
next() Tng con trß mÁng nßi bß hay trß tái phần tÿ
prev() GiÁm con trß mÁng nßi bß hay trß tái phần tÿ
reset() Thi¿t lÁp con trß nßi bß cāa mÁng về phần tÿ
uasort() Sắp x¿p mßt mÁng vái mßt hàm do ng°ãi
dùng t¿o và duy trì liên k¿t chỉ mÿc 3 uksort() Sắp x¿p mßt mÁng bằng các key båi sÿ dÿng
Trang 32Hàm trong PHP dùng đß thực hián mßt khái lánh liên ti¿p có đißm đầu và đißm cuái Mßt hàm đ°ợc xác định thực hián mßt công viác cÿ thß nào đó, giÁ sÿ tôi vi¿t mßt hàm kißm tra sá chẵn hay sá lẻ thì mÿc đích cāa hàm đó là kißm tra mßt sá là sá chẵn hay lẻ Điều đặc biát hàm có thß gọi å nhiều n¢i, nhiều ch°¢ng trình khác nhau
GiÁ sÿ b¿n cần vi¿t mßt ch°¢ng trình cho ng°ãi dùng đng nhÁp vào há tháng
và b¿n s¿ sÿ dÿng nó å hai ứng dÿng backend và frontend Nh°ng sau mßt thãi gian b¿n muán sÿa l¿i mßt sá thông tin lúc kißm tra thì b¿n s¿ phÁi vào hai ch°¢ng trình
đó và sÿa l¿i, điều này thÁt tá h¿i vì ch°¢ng trình s¿ bị d° thừa, khó quÁn lý và bÁo trì Nh°ng n¿u b¿n sÿ dÿng hàm thì chỉ cần sÿa trong hàm đó là đ°ợc
Cú pháp tổng quát khai báo hàm trong php:
Trong đó:
func_name là tên cāa hàm, $vars là các bi¿n s¿ truyền vào trong hàm, return
$val là hàm s¿ trÁ về giá trị $val N¿u hàm không có trÁ về giá trị nào thì ta không
có dòng return này
Ví dÿ:
Trang 332.5.2 Sử dÿng hàm
Truyền nhiều biến vào hàm trong php:
Các bi¿n truyền vào hàm trong php có thß là các kißu b¿t kỳ (tham khÁo trong bài các kißu dÿ liáu trong php) Và sá bi¿n truyền vào là không giái h¿n, nh° ví dÿ trên thì chỉ có 1 bi¿n truyền vào là $number, nh°ng thực t¿ b¿n có thß truyền nhiều bi¿n vào bằng cách mỗi bi¿n cách nhau båi d¿u phẩy
Ví dÿ:
Hàm này s¿ tính tång cāa 2 bi¿n truyền vào, các bi¿n cách nhau båi d¿u phẩy Nh° vÁy trong ch°¢ng trình chính s¿ làm nh° sau:
Trang 34Gán giá tr ị mặc định cho biến truyền vào:
N¿u mßt hàm trong php b¿n khai báo có 2 bi¿n truyền vào mà lúc sÿ dÿng b¿n chỉ truyền có 1 bi¿n vào thì há tháng s¿ báo lỗi ngay Trong thực t¿ có nhÿng hàm không ràng bußc phÁi bắt bußc truyền đā bi¿n vào, vì th¿ nó cing c¿p cho chúng ta mßt chức nng là truyền giá trị mặc định cho bi¿n trong các hàm
Tham s ố thực và tham số hình thức:
Các bi¿n ta định nghĩa trong hàm gọi là tham sá hình thức, còn bi¿n mà ta truyền vào å ch°¢ng trình chính gọi là tham sá thực
Trang 35Tham sá $number trong hàm kiem_tra_so_nguyen_to gọi là tham sá hình thức, bi¿n $so trong ch°¢ng trình chính gọi là tham sá thực
Biến toàn cục và biến cục bộ:
Bi¿n toàn cÿc chính là các bi¿n ta khai báo å ch°¢ng trình chính, còn bi¿n cÿc
bß là bi¿n ta khai báo å các hàm
Ví dÿ:
Trang 36Bi¿n tĩnh là các bi¿n cá định bên trong các hàm, không giáng nh° các bi¿n toàn cÿc chúng không đ°ợc bi¿t đ¿n bên ngoài hàm tức là chỉ bi¿t đ¿n bên trong hàm nh°ng giá trị cāa chúng s¿ l°u l¿i sau mỗi lần gọi hàm Đß khai báo là mßt bi¿n tĩnh
ta dùng từ khóa static $tenbien;
Ví dÿ:
Ch¿y đo¿n code này màn hình s¿ xu¿t hián giá trị 1 và 2 båi vì lần gọi hàm thứ nh¿t bi¿n $a đ°ợc tng lên 1 và xu¿t ra màn hình 1 Vì $a là bi¿n tĩnh nên nó đ°ợc l°u l¿i trong vùng nhá Qua lần gọi hàm thứ 2 bi¿n $a đ°ợc tng lên 1 nÿa là 2 nên xu¿t ra màn hình là 2, và đ°¢ng nhiên giá trị 2 đ°ợc l°u l¿i trong vùng nhá cho các lần gọi ti¿p theo
Các cách gọi hàm trong PHP
Truyền bằng giá trị:
Mặc định t¿t cÁ các đái sá truyền vào hàm đều là truyền bằng giá trị Điều này
có nghĩa là khi các đái sá đ°ợc truyền đ¿n hàm đ°ợc gọi, giá trị đ°ợc truyền thông qua các bi¿n t¿m (tham sá hình thức) mọi thao tác chỉ thực hián trên bi¿n t¿m này nên nó không hề tác đßng đ¿n bi¿n chính cāa mình Điều này có nghĩa là n¿u truyền bằng giá trị thì trong hàm n¿u ta tác đßng đ¿n giá trị bi¿n truyền vào thì sau khi thoát khßi hàm giá trị đó không thay đåi
Ví dÿ:
Trang 37K¿t quÁ xu¿t ra màn hình s¿ là 2 và 1 Nh° th¿ bi¿n $a v¿n giÿ nguyên giá trị bằng 1 sau khi hàm k¿t thúc Còn trong hàm thì bi¿n $a có giá trị là 2
Truyền bằng tham chi¿u:
Khi các đái sá đ°ợc truyền bằng giá trị thì giá trị cāa các đái sá cāa hàm đang gọi không bị thay đåi Tuy nhiên đôi khi b¿n muán nhÿng giá trị đó thay đåi theo thì lúc này b¿n phÁi truyền bi¿n vào hàm d¿ng tham chi¿u
Ví dÿ:
Trang 38Bài tÁp
Sÿ dÿng ngôn ngÿ PHP thực hián:
Bài 1: Tính chu vi, dián tích hình cÿ nhÁt
Bài 2: K¿t hợp php và html, css đß thực hián