Bài giảng Lập trình viên mã nguồn mở (Module 1) - Bài 3: Xây dựng phương thức (hàm) và xử lý lỗi trình bày các nội dung chính sau: Phương thức hàm, xây dựng phương thức hàm, xử lý lỗi. Mời các bạn cùng tham khảo để nắm nội dung chi tiết bài giảng.
Trang 1Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh
TRUNG TÂM TIN HỌC
LTV MÃ NGUÒN MỞ PHP
Module 1 - Bài 3: Xây dựng phương thức
(hàm) và xử lý lỗi
Ngành LT & CSDL
(3h.vn
Cong GUC
MediaFire
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 22
Trang 2Lap trinh vién mad nguén mo PHP — Module 1
Noi dung
1 Phwong thức (hàm)
2 Xây dựng phương thức (ham)
3 Xử lý lỗi
LTV Mã nguồn mở PHP - Module 1
Phương thức (hàm)
Khái niệm
@ ©)
Xây dựng phương thức
cùng một
nghiệp vụ trong thực tế nhiều lần
Pp ^
nhiêu lân
TÀI
©; [TH LTV Ma nguon mo PHP — Module 1 ¬
Function là một đoạn code đặc biệt được viết đề thực hiện một công việc nào đó thường được lặp đi lặp lại
Phương thức (hàm) -
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 23
Cong GUC
3 | & MediaFire
Trang 3
sss,
O Phan loai
e Built-in function: ham do PHP cung cấp Có trên
700 hàm chia thành nhiều nhóm: chuỗi, toán học,
thời gian, lịch, mảng, tập tin, mail, xử lý CSDL chỉ
cần gọi hàm khi sử dụng và truyền vào các giá trị
phù hợp dựa trên danh sách các tham số
“ Ví dụ:
$SO = 121.1542;
round($so,2); — 121.15 round ($so,-1); — 120 đate("3/m/Y"); — 15/01/2014
th
UPhan loai
e User defined function: ham do nguo’ dung
tu dinh nghia
“ Ví dụ:
// ax + b =0 snghiem = Giai phuong trinh bac I(2, 4);
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 24
Cong GUC
MediaFire
Trang 4Lap trinh vién mad nguén mo PHP — Module 1
Noi dung
4 Phương thức (ham)
2 Xây dựng phương thức (hàm)
3 Xử lý lỗi
H LTV Ma nguén ma PHP — Module 1
Xây dựng phương thức (hàm)
Khai báo
Tên hàm(Danh sách các tham số) {
khối lệnh bên trong hàm
return giá trị;
LTV Mã nguồn mở PHP - Module 1
Tên hàm: được sử dụng khi gọi hàm, tên hàm nên
có ý nghĩa gợi nhớ
- Danh sách các tham số:
dùng đề truyền dữ liệu bên ngoài vào, hàm có thế
có hoặc không có tham số
- Giá trị: là kết quả trả về của hàm Hàm có thê có
hoặc không có giá trị trả
về
7
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 25
Cong GIIC
MediaFire
Trang 5Xây dựng phương thức (hàm)
eV⁄í dụ: Xây dựng hàm tính điện tích hình chữ
nhật
function Tinh S hcn($a, $b) {
$S = $a * $b;
return $S;
f LTV Mã nguồn mở PHP - Module 1
eee eeoeo eecen
USu dung
Tên hàm(Danh sách các giá trị)
e [rong đó:
- Tên hàm gọi sử dụng phải giống tên hàm đã xây dựng
= Danh sách các giá trị: cung cấp các thông tin cho tham số
của hàm Với:
- Số lượng các giá trị bằng số lượng các tham số của hàm
- Thứ tự tương ứng theo thứ tự các tham số
- Kiểu dữ liệu của giá trị phải tương ứng với kiểu của tham số
- Nếu hàm không có giá trị truyền vào thì phía sau tên hàm cũng phải có
cặp ()
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 26
Cong GIIC
MediaFire
Trang 6Lap trinh vién mad nguén mo PHP — Module 1
Xây dựng phương thức (hàm)
eVí dụ: gọi sử dụng hàm tính diện tích hình
chữ nhật
$s = Tỉnh S hcn(4, 8);
| |
Xây dựng phương thức (hàm)
Phân loại tham số của hàm
eCó 2 loại:
» Tham trị: truyền tham số theo giá trị
" Tham biến: truyền tham số theo địa chỉ
| |
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 27
Cong GUC
MediaFire
Trang 7
sess°
OTham tri
e Tham số truyền giá trị từ bên ngoài vào cho
hàm
e Khi thay đổi giá trị của tham trị bên trong
hàm thì giá trị của nó ở ngoài hàm vẫn không bị thay đổi
th
e\V/i du
function them_vao_chuoi ($chuoi)
{
$chuoi = "và chuỗi sau khi thêm ";
return $chuoi;
}
$chuoi goc= "Đây là chuỗi gốc, ";
echo them vao chuoi ($chuoi goc); // "Đây là
chuỗi gốc, và chuỗi sau khi thém.«
echo $chuoi goc ; // "Đây là chuỗi gốc, "
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 28
Cong GUC
MediaFire
Trang 8Lap trinh vién mad nguén mo PHP — Module 1
Tham biến
e Tham số truyền giá trị từ bên ngoài cho hàm
và trả giá trị ở trong hàm ra bên ngoài
e Khi thay đổi giá trị của tham biến bên trong
hàm thì giá trị của nó ở ngoài hàm cũng sẽ thay đổi sau khi chúng ta gọi hàm đã xây dựng
eĐối với tham biến chúng ta sẽ sử dụng cú
pháp với ký tự & ° pie moe :
eCú pháp:
function Tên hàm(&Tên tham biến, .)
{
Tên tham biến = giá tri;
return ;
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 29
Cong GUC
MediaFire
Trang 9Xây dựng phương thức (hàm) ss:
eVí du:
function them _vao_chuoi (&$chuoi)
{
$chuoi = "và chuỗi sau khi thêm ";
return Schuoi;
}
$chuoi goc= "Đây là chuỗi gốc, ";
echo them_vao_chuoi($chuoi_goc); // "Day 1a chuỗi
gôc, và chuôi sau khi thêm "
echo $chuoi_goc;
// "Đây là chuỗi gốc, và chuỗi sau khi thêm."
Tham số tùy chọn
eLà những tham số có thê được truyền giá tri
hoặc không
eCho phép tạo sẵn các giá trị mặc định cho
tham số
e Những tham số này chỉ xuất hiện ở cuối
danh sách các tham sô
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 30
Trang 10Lap trinh vién mad nguén mo PHP — Module 1
eeoeo eecen
eCu phap
function Tén_ham(Danh sach cac tham tri, tham
biên, $tham số tùy chọn=giá trị) {
khối lệnh bên trong hàm return giá trị;
}
eee eeoeo eecen
eVí dụ
function so_thich($nuoc_uong = "ca phé")
{
return "T6i thich uéng $nuoc_uong.";
}
echo so thich(); // "Tôi thích uống cà phê."
echo so thich("nước ép trái cây"); // "Tôi thích
uống nước ép trái cây."
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 31
Cong GIIC
MediaFire
Trang 11
eeoen
ôi HH
Nội dung 332
4 Phương thức (hàm)
2 Xây dựng phương thức (hàm)
3 Xử lý lỗi
LTV Mã nguồn mở PHP - Module 1 20
eee eeee eeoen
ˆ = pare
UO) Phan loai loi
e Lỗi cú pháp (syntax error)
e Lỗi thực thi
e Lỗi luận lý
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 32
Cong GUC
MediaFire
Trang 12Lap trinh vién mad nguén mo PHP — Module 1
đc:
eLỗi cú pháp
= Xuat hiện khi ta viết code
= )ược thông báo khi ta thực thi trang
* Nguyên nhân: Viết sai hoặc thiếu cú pháp
=“ Ví dụ: Một số lỗi sai thường gặp
- Tên biến có chứa khoảng trắng
- Thiếu ; cuối lệnh
- Sai do PHP có phân biệt ký tự thường và hoa
„ Chuỗi không bắt đầu và kết thúc bởi cặp nháy don ” hoặc nháy đôi “"
đc:
eLỗi thực thi
= Xay ra khi ta thực thi trang
= Kho xac định hơn lỗi cú pháp
“ Nguyên nhân: Mở một tập tin đang tồn tại, chia
cho 0, truy xuất bảng không tôn tại trong CSDL
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 33
Cong GIIC
MediaFire
Trang 13
th
eLỗi luận lý
= Xay ra khi ta thực thi trang
“ Được thê hiện dưới những hình thức hoặc những
kết quả không mong đợi
“ Nguyên nhân: Sai lầm trong thuật giải
th
Sửa lôi
e Sửa lỗi thủ công
e Dùng try catch đề bắt lỗi
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 34
Cong GUC
MediaFire
Trang 14Lap trinh vién mad nguén mo PHP — Module 1
eeoeo
|
e Sủa lỗi thủ công
" Khi chạy chương trình, nếu có lỗi phát sinh thi
trang thực thi sẽ tự động thông báo lỗi
„ Cách sửa lỗi:
- Xem thông báo lỗi và dòng xảy ra lỗi
- Mở code và sửa lỗi tại dòng đó (hoặc những dòng lân
cận)
eee eeoeo eecen
Xw ly loi 33°
e Dùng try catch dé bat léi
= Cho phép thử thực hiện một khói lệnh xem có bị
lỗi hay không, néu co sé bay và xử lý lỗi
Cấu trúc có hai khối:
- Khối try: các câu lệnh có khả năng gây ra lỗi
- Khối catch: các câu lệnh để bẫy và xử lý lỗi phát sinh
trên khối try
“ Một lỗi xảy ra khi thực thi trang gọi là một
Exception
« Néu dong nao trong khối lệnh có kha nang tạo ra lỗi thì gọi trả về lỗi đó
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 35
Cong GC
MediaFire
Trang 15
eeoen
Xw ly loi 33°
` R J x
e Dùng try catch đê bắt lôi
= Trong PHP lỗi sẽ không tự động trả về => gọi lỗi
đó bằng cú pháp sau:
throw new Exception("Câu thông báo lỗi",
code) ;
«Voi câu thông báo lỗi và mã lỗi (code) đều là các tham số tùy chọn
“Lưu ý:
- Một khối try có thể dùng một hay nhiều khối catch
- Mỗi khối catch hiển thị một loại lỗi khác nhau
LTV Mã nguồn mở PHP - Module 1 28
eee eeoeo eeoen
Xw ly loi 33°
eCu phap
try
{ ~
- kh6i lệnh có khả năng phát sinh lỗi
- các lỗi
throw new Exception("Câu thông báo lỗi", code) ;
}
catch (Exception Se)
{
echo "<p>L6i: " $e->getMessage () "</p>";
//xuat 16i }
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 36
Cong GIIC
MediaFire