Trong PHP, chúng ta có thể tự xây dựng các hàm của mình. Trước khi sử dụng, chúng ta cần phải tiến hành cài đặt hàm.
Cú pháp cài đặt một hàm có thể được tóm tắt như sau: function ten_ham (thamso1, thamso2, ..., thamson) // đoạn chương trình xử lý dữ liệu bên trong hàm return gia_tri;
}
Trong đó:
- function là từ khóa,
- Các thamsoi là các tham số đưa vào. Các tham số khi khai báo thường ở dưới dạng các biến, còn khi sử dụng thì có thể là biến, hằng, hay một giá trị nào đó. Một hàm có thể không có hoặc có nhiều tham số.
- Giá trị gia_tri sau từ khóa return là giá trị trả về sau khi gọi hàm. Giá trị này có thể là giá trị của một biến, hay một giá trị cụ thể nào đó.
Ví dụ: Tôi xây dựng một hàm đơn giản để trả về dòng chữ "Xin chào": function chao()
{
return "<B>Xin chào</B>"; }
Ví dụ 2: Tôi đưa ra một hàm phức tạp hơn chút đỉnh: Khi xây dựng các ứng dụng liên quan đến CSDL, ta thường phải xuất dữ liệu ra một bảng nào đó.
Một bảng trong HTML được cấu thành từ các cặp thẻ <table>, <tr>, <td> lồng vào nhau, ở mức độ nhỏ nhất của cấu trúc trên là một ô.
Một ô có thể có chứa thông tin (nằm giữa các cặp thẻ <td></td>), có thể chứa các thuộc tính định dạng (style)... Việc ngồi gõ đi gõ lại mấy cái thẻ HTML đủ làm cho chúng ta phát chán.
Ở đây tôi sẽ xây dựng một hàm để tự động sinh ra nội dung của một ô. Hàm này có 2 tham số đầu vào dạng chuỗi là nội dung và định dạng thẻ:
<?
function viet_o ($noidung,$dinhdang) { $td_tmp="<td " . $dinhdang . ">" . $noidung . "</td>"; return $td_tmp; } ?> VD sử dụng hàm trên: <table> <tr> <?viet_o("STT","");?> <?viet_o("Họ tên","");?> <?viet_o("Ngày sinh","");?> </tr> <tr> <?viet_o("1","");?>
<?viet_o("Lê Nguyên Sinh","");?> <?viet_o("01/04/2006","");?> </tr> <tr> <?viet_o("2","");?> <?viet_o("Thử một tí","");?> <?viet_o("01/01/2007","");?> </tr> </td>
Chúng ta có thể mở rộng ra các hàm khác để xử lý cột, bảng. Hãy xem xét toàn bộ đoạn mã sau: <?
{
$td_tmp="<td " . $dinhdang . ">" . $noidung . "</td>"; return $td_tmp;
}
function viet_cot ($noidung,$dinhdang) { $td_tmp="<tr " . $dinhdang . ">" . $noidung . "</tr>"; return $td_tmp; } ?> <?
function viet_bang ($noidung,$dinhdang) {
$td_tmp="<table " . $dinhdang . ">" . $noidung . "</table>"; return $td_tmp;
}
// Tạo một bảng tương tự ở trên nhưng dùng các hàm vừa xây dựng
$noidung = viet_cot(viet_o("STT","") . viet_o("Họ tên","") . viet_o ("Ngày sinh",""),"");
$noidung .=viet_cot(viet_o("1","") . viet_o("Lê Nguyên Sinh","") . viet_o ("01/04/2006",""),""); $noidung .=viet_cot(viet_o("2","") . viet_o("Thử một tí","") . viet_o ("01/01/2007",""),""); $noidung = viet_bang($noidung,"");
echo $noidung; ?>
Đoạn mã trên nhìn qua thì nó hơi dài, nhưng khi bạn xử lý với số lượng dữ liệu lớn thì nó sẽ trở nên ngắn gọn hơn nhiều, nhất là ta có thể dùng vòng lặp để duyệt qua các hàng của một bảng.
Re: Các hàm do người dùng tự định nghĩa
« Reply #1 on: February 07, 2007, 09:46:24 PM »