Kỹ thuật lập trình PHP Lập trình PHP

Bài 6: Hàm trong lập trình PHP

I. Hàm trong PHP

Hàm là một đoạn chương trình nhỏ được sử dụng trong chương trình lớn. Mỗi hàm có một chức năng riêng nhằm xử lý một phần nhỏ trong bài toán lớn. PHP hỗ trợ sẵn hơn 1000 hàm với nhiều nhóm chức năng như mảng, chuỗi, v.v…

II. Hàm do người dùng định nghĩa

a. Tạo hàm

Hàm do người dùng định nghĩa là hàm cho lập trình viên tự viết để xử lý một công việc nào đó với các đặc điểm sau:

  • Có thể sử dụng nhiều lần trong chương trình mà không cần viết lại.
  • Không tự động thực thi khi chạy chương trình.
  • Chỉ thực thi khi hàm được gọi ở bất kì đâu trong chương trình.

Cú pháp để tạo hàm, sử dụng từ khóa function sau đó là tên hàm như sau:

function tenHam() {
// đoạn lệnh thực thi
}

Lưu ý:

  • Tên hàm phải bắt đầu bằng một kí tự chữ cái hoặc dấu gạch dưới (_)
  • Tên hàm nên thể hiện một hành động nào đó để dễ nhớ.
  • Tên hàm không phân biệt hoa thường.
  • Thân hàm phải nằm bên trong cặp dấu { } dù chỉ là một dòng.

Ví dụ:

<?php
function echoHello() {
echo "Hello world <br />";
}

// gọi hàm
echoHello();
echohello();
?>

Hình 40 Kết quả thực thi gọi hàm, tên hàm không phân biệt hoa thường

b. Tham số

Tham số là những thông tin được truyền vào bên trong hàm. Việc truyền tham số vào hàm giống như việc khai báo biến và chỉ được sử dụng bên trong hàm.

Tham số được khai báo trong cặp dấu () phía sau tên hàm. Có thể khai báo một hoặc nhiều tham số, mỗi tham số cách nhau bằng dấu phẩy (, ).

Khi gọi hàm có khai báo tham số thì bắt buộc phải truyền giá trị vào tham số.

Ví dụ:

<?php
function echoHello($name) {
echo "Hello $name!<br />";
}

echoHello("Duy");
echohello("Nguyen Duy");
?>

Hình 41 Kết quả thực thi truyền một tham số

<?php
function echoHello($name, $age) {
echo "Xin chào $name! Bạn $age tuổi<br />";
}

echoHello("Duy", 15);
echohello("Nguyen Duy", 20);
?>

Hình 42 Kết quả thực thi truyền nhiều tham số

c. Tham số có giá trị mặc định

Khi gọi hàm có khai báo tham số nhưng không truyền giá trị tham số thì chương trình sẽ báo lỗi. Tuy nhiên tham số có thể có giá trị mặc định khi gọi hàm mà không truyền giá trị cho tham số.

Ví dụ:

<?php
function InNgay($ngay = '29/04/2015') {
echo "Ngay: $ngay<br />"; 
}

InNgay('1/1/2015'); // có truyền tham số
InNgay(); // không truyền tham số
?>


Hình 43 Kết quả khi gọi hàm có và không có truyền tham số

d. Hàm trả về giá trị

Hàm trả về giá trị là hàm xử lý một công việc nào đó và trả về kết quả để tiếp tục xử lý chứ không in trực tiếp lên màn hình. Để trả về giá trị sử dụng lệnh return <giá trị>;

Ví dụ:

<?php

function timMax($a, $b) {
if($a > $b) 
return $a;
else 
return $b;
}
$a = 2;
$b = 5;
$max = timMax(2, 5);
echo "Max($a, $b) = $max";
?>

Hình 44 Kết quả thực thi hàm tìm max