Tải bản đầy đủ (.pdf) (77 trang)

giáo trình lập trình web căn bản nghề tin học ứng dụng cao đẳng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.25 MB, 77 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĀY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH

<b>TR¯äNG CAO ĐẲNG BÁCH KHOA NAM SÀI GỊN </b>

<b>Tp.Hß Chí Minh, nm 2022 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TUYÊN BỐ BÀN QUYÀN </b>

Tài liáu này thußc lo¿i sách giáo trình nên các ngn 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.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LäI GIâI THIÞU </b>

Mơn học này thuòc khỏi kin thc 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 bc trong chÂng trỡnh ngnh Tin hc ng dng trỡnh ò cao đẳng.

Nßi dung giáo trình gãm 4 bài: - Bài 1: Tång quan

- Bài 2: Ngơn ngÿ PHP - Bài 3: Bißu m¿u và PHP - Bài 4: MySQL

Trong quá trình biên so¿n chúng tôi đã k¿t hợp kinh nghiám giÁng d¿y trong nhiều nm cāa nhóm tác giÁ vái mong mn có thß giúp cho học sinh – sinh viên dß dàng nắm bắt đ°ợc nßi dung cāa mơn học. Mặc dù, r¿t cá gắng trong quá trình biên so¿n, nh°ng chắc chắn khơng thß tránh khßi nhÿng thi¿u sót, vì vÁy, nhóm tác giÁ chúng tơi r¿t mong nhÁn đ°ợc ý ki¿n đóng góp cāa b¿n đọc đß giáo trỡnh ngy mòt hon thiỏn hÂn.

Tp. HCM, ngy 31 tháng 08 nm 2022 Tham gia biên so¿n

1. Chā biên: ThS Lê Thị Thùy Trang 2. &&&&

<b>3. &&&&. </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Bài tÁp ... 38

Bài 3: Bißu m¿u và PHP ... 40

1. Mÿc tiêu: ... 40

2. Nòi dung bi: ... 40

2.1 PhÂng thc ly v lu dÿ liáu từ bißu m¿u ... 40

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>GIÁO TRÌNH MƠN HàC/MƠ ĐUN </b>

<b>Tên mơn hác/mơ đun: LÀP TRÌNH WEB C¡ BÀN Mã mơn hác/mơ đun: MH21 </b>

<b>Vß trí, tính chất, ý nghĩa và vai trị cÿa mơn hác/mơ đun: </b>

- Vị trí: Mơn học này thc khái ki¿n thức chun 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 bn l mụn hc bt buòc trong chÂng trỡnh ngành Tin học ứng dÿng trình đß cao đẳng.

<b>Mÿc tiêu cÿa môn hác/mô đun: </b>

Về ki¿n thức

- Phỏt biòu c cỏc khỏi niỏm v c bn 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 dng c cỏc phÂng thc ò ly 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;

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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. Về nng lực tự chā và trách nhiám:

- Rèn lun lịng u nghề, t° th¿ tác phong cơng nghiáp, tính kiên trì, sáng t¿o trong cơng viác.

<b>Nái dung cÿa môn hác/mô đun: BÀI 1. TàNG QUAN. </b>

<b>1. Mÿc tiêu:</b>

- 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.

<b>2. Nái dung bài: </b>

<b>2.1. Cỏc khỏi niòm c bn 2.1.1. Cỏc khỏi niòm c bÁn</b>

- 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 dut - 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ỉ

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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ã ngn 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 q đ°ợc trÁ về phía trình dut (browser), file PHP có phần đ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 q phía máy chā.

<b>2.1.2. Các dßch vÿ cÿa www</b>

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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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".

<b>2.1.3. Giao thāc http</b>

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ā).

<b>2.2. Cài đặt và thực thi 2.2.1. Cài đặt phần mÁm</b>

- TÁi WampServer - Cài đặt WampServer

- Kißm tra WampServer

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>2.2.2. Cấu hình và sử dÿng phần mÁm</b>

<i>Cấu hình PHP: </i>

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: - error_log = "c:/wamp/logs/php_error.log" (~ dòng 639)

- Tng dung l°ợng tái đa cāa dÿ liáu POST mà PHP s¿ ch¿p nhÁn - thay đåi giá trị:

- post_max_size = 50M (~ dòng 734)

- Tng dung l°ợng tái đa đ°ợc phép cho các file đ°ợc upload lên - thay đåi giá trị:

- upload_max_filesize = 50M (~ dịng 886) - Nh¿p Save.

<i>Cấu hình Apache: </i>

Đß sÿ dÿng permalink tùy chỉnh trong WordPress, b¿n s¿ cần phÁi bÁt rewrite_module cāa Apache. Nh¿p vào bißu t°ợng WampServer, chuyßn đ¿n menu Apache  Apache modules, sau đó tìm và nh¿p vào Rewrite_module đß đÁm bÁo nó đ°ợc bÁt. WampServer s¿ thay đåi file httpd.conf và tự đßng khåi đßng l¿i Apache.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>Bài 2: Ngôn ngữ PHP. 1. Mÿc tiêu:</b>

- 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 bn, thụng dng ò s dng trong lp trỡnh PHP.

<b>2. Nái dung bài: 2.1. PHP c¢ bÁn 2.1.1. Đặc điểm</b>

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.

Ngồ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 hồ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ã.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Khi sÿ dÿng PHP, b¿n hồn tồn có thß n tâm n¿u chẳng may gặp khó khn trong q 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 tồ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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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

<i>Ghi chú trong PHP: </i>

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ú*/

?>

<b>2.1.3. Khai báo bi¿n, toán tử, phép toán</b>

<i>Khai báo biến số trong php: </i>

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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Đß gán giá trị cho bi¿n ta dùng tốn tÿ phép gán =.

<i>Hiển thị giá trị của biên ra màn hình: </i>

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.

<i>Khai báo hằng: </i>

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

<i>Biểu thức: </i>

Bißu thức là mßt tå hợp các tốn h¿ng và tốn tÿ. Tố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á

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

trị mà các phép tố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.

<i>Toán tử gán (Assignment Operator): </i>

Đây là tố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 đó.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Tốn tÿ quan há cing là mßt định nghĩa trong bài tố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ó khng trắng. Ví dÿ ! = là sai vì có khng trắng giÿa 2 ký tự.

Tố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.

<i>Tốn tử luận lý: </i>

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 tố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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

L°u ý: T¿t cÁ các tốn tÿ ln lý nào có 2 ký tự trå lên đều phÁi ghi liền khơng đ°ợc có khng trắng. Ví dÿ | | là sai vì có khng 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 tốn tÿ luÁn lý: NOT  AND  OR

Đß °u tiên các tốn tÿ:

Đß °u tiên các tốn tÿ thi¿t lÁp thứ tự °u tiên tính tố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 tốn tÿ và bißu thức trong php có sự liên há l¿n nhau, tốn tÿ k¿t hợp tốn h¿ng t¿o thành bißu thức.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Nhÿng tố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 xng d°ái. Viác tính tốn bißu thức sá học s¿ đ°ợc tính tố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 tốn th°ãng thì nhân chia tr°ác, cßng trừ sau °u tiên trong ngoặc).

<b>2.2. Lựa chán và vòng lặp 2.2.1. Cấu trúc lựa chán</b>

<i>Câu lệnh điều kiện if </i>

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ỏ chn hay l

Vn dng: ChÂng trỡnh kiòm tra cú phi 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)

<i>Câu lệnh If else trong php </i>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>Câu lệnh if else lồng nhau: </i>

Đâ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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

Ví 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 tip 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ỏ chn v nhò hÂn 1003.

<i>Cõu lnh switch trong PHP: </i>

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,

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

n¿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 q trÁ về mßt trong nm lo¿i dÿ liáu đó và tốn tÿ quan há so sánh trong switch ln ln là ==.

Ví dÿ: Vi¿t chÂng nhp vo 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 đó

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>2.2.2. Cấu trúc lặp</b>

Vịng lp 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 bn trong lp trỡnh cu trỳc.

 $bieu_thuc_dieu_kien: là mßt bißu thức quan há xác định điều kián thố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à thốt

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<i>Vịng lặp while và do while: </i>

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 ln ln đúng.

Ví dÿ: Dùng vịng lặp while trong php liát kê các sá từ 1 tái 10.

<i>Vòng lặp do while </i>

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 ln ln 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:

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>Vòng lặp foreach: </i>

Cú pháp:

Hoặc

Ví dÿ:

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

 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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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.

<b>2.4. MÁng </b>

<b>2.4.1. Cú pháp khai báo</b>

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á ngun 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, ...

) Ví dÿ:

<?php

$cars=array("Volvo","BMW","Toyota"); var_dump( $cars );

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

chỉ 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.

K¿t quÁ nh° sau: array(3) {

[0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" }

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

array_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_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 <sup>4 </sup>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 <sup>4 </sup>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

array_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 tố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

ng°ãi dùng t¿o, và trÁ về mßt mÁng <sup>5 </sup>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

array_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 <sup>5 </sup>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 <sup>5 </sup>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

thc tính trong mßt đái t°ợng <sup>3 </sup>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ự

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

ksort() 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 tht tốn "natural order" khơng phân biát kißu chÿ <sup>4 </sup>natsort() Sắp x¿p mßt mÁng båi sÿ dÿng mßt tht tố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 <sup>3 </sup>uksort() Sắp x¿p mßt mÁng bằng các key båi sÿ dÿng

usort() Sắp x¿p mßt mÁng bằng các value båi sÿ dÿng

<b>2.5. Hàm 2.5.1. Khai báo</b>

<i>Cách sử dụng hàm trong PHP: </i>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Hà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 ci. 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 bn cn vit 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 mn 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ó qn 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.

<i>Cú pháp tổng quát khai báo hàm trong php: </i>

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ÿ:

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>2.5.2. Sử dÿng hàm</b>

<i>Truyền nhiều biến vào hàm trong php: </i>

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:

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i>Gán giá trị mặc định cho biến truyền vào: </i>

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 bc phÁi bắt bc 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

<i>Tham số thực và tham số hình thức: </i>

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.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Tham 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.

<i>Biến toàn cục và biến cục bộ: </i>

Bi¿n tồn cÿc chính là các bi¿n ta khai bỏo ồ chÂng trỡnh chớnh, cũn bin cc bò là bi¿n ta khai báo å các hàm.

Ví dÿ:

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Bi¿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 tồn cÿc chúng khơng đ°ợc bi¿t đ¿n bên ngồ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.

<i>Các cách gọi hàm trong PHP </i>

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 thốt khßi hàm giá trị đó khơng thay đåi.

Ví dÿ:

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

K¿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ÿ:

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

Bà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

</div>

×