Trong quá trình lập trình, bạn sẽ nhanh chóng nhận ra rằng việc viết đi viết lại một đoạn mã giống nhau ở nhiều nơi là việc không chỉ tốn thời gian mà còn dễ gây lỗi. Đây là lúc hàm (function) phát huy sức mạnh: giúp bạn đóng gói một đoạn mã thành một “khối chức năng” tái sử dụng được, giúp cho chương trình gọn gàng, dễ đọc, dễ bảo trì hơn.
Hàm là gì?
Hàm là một khối mã thực hiện một nhiệm vụ cụ thể và có thể được gọi lại nhiều lần. Trong PHP, bạn có thể tự định nghĩa hàm của mình để xử lý các tác vụ lặp đi lặp lại.
Cú pháp định nghĩa hàm trong PHP như sau:
function ten_ham($tham_so1, $tham_so2, ...) {
// phần thân của hàm
return ket_qua;
}
Ví dụ đơn giản
<?php
function chao($ten) {
return "Xin chào, $ten!";
}
echo chao("Lan"); // Kết quả: Xin chào, Lan!
Hàm chao() ở trên nhận vào một tham số $ten và trả về lời chào tương ứng.
Giá trị trả về
Hàm có thể hoặc không có giá trị trả về. Nếu bạn muốn hàm chỉ thực hiện hành động nào đó (ví dụ in ra màn hình), bạn có thể không cần return.
function in_loi_chao() {
echo "Chào mừng bạn đến với PHP!";
}
Gọi hàm
Sau khi định nghĩa, bạn có thể “gọi” hàm bất cứ lúc nào trong mã của bạn:
in_loi_chao(); // Chào mừng bạn đến với PHP!
Tham số mặc định
Bạn có thể đặt giá trị mặc định cho tham số trong hàm:
function gioi_thieu($ten = "Khách") {
return "Xin chào $ten, mình là PHP.";
}
echo gioi_thieu(); // Xin chào Khách, mình là PHP.
echo gioi_thieu("Quân"); // Xin chào Quân, mình là PHP.
Chú ý quan trọng
- Hàm nên thực hiện đúng một nhiệm vụ cụ thể. Đừng cố nhồi nhét quá nhiều thứ vào một hàm.
- Đặt tên hàm rõ ràng, thể hiện đúng ý nghĩa. Tránh đặt kiểu
a(),x1(),… sẽ khiến bạn và đồng đội “đau não” về sau. - Hàm nên được đặt ở đầu file, hoặc tách riêng vào file
functions.phpđể dễ tổ chức.
Bài tập áp dụng
- Viết hàm
tinh_tong()nhận 2 số và trả về tổng của chúng. - Viết hàm
kiem_tra_chan_le()để kiểm tra một số là chẵn hay lẻ. - Tạo một hàm
say_hello()không nhận tham số, chỉ đơn giản in ra lời chào bất kỳ.
Gợi ý mở rộng
Nếu bạn thấy việc tổ chức code bằng hàm khá tiện lợi, thì sắp tới chúng ta sẽ còn khám phá cách tách code thành module hoặc class để nâng cao hơn nữa khả năng tái sử dụng. Nhưng đừng vội – hãy hiểu thật kỹ cách dùng hàm trước đã.
Ở bài tiếp theo, chúng ta sẽ học về mảng – một cấu trúc rất phổ biến và cực kỳ hữu dụng khi bạn muốn lưu trữ nhiều giá trị cùng lúc. Cùng đón xem nhé!

Thảo luận