Bài 16: Hàm ẩn danh trong PHP

PHP nâng cao 19/02/2017 07:00 958
Các hàm ẩn danh (anonymous function) hay hàm lambda là các hàm chỉ sử dụng duy nhất một lần. Nó có thể được định nghĩa vào bất cứ lúc nào, và thường gắn với một biến hoặc gán vào một hàm khác như một tham số . Các hàm này chỉ tồn tại trong phạm vi của biến mà nó được định nghĩa, vì vậy khi biến đó vượt ra ngoài phạm vi, thì hàm này cũng không còn nữa.

1. Hàm ẩn danh là gì?

Các hàm ẩn danh (anonymous function) là các hàm chỉ sử dụng duy nhất một lần. Nó có thể được định nghĩa vào bất cứ lúc nào, và thường gắn với một biến hoặc gán vào một hàm khác như một tham số . Các hàm này chỉ tồn tại trong phạm vi của biến mà nó được định nghĩa, vì vậy khi biến đó vượt ra ngoài phạm vi, thì hàm này cũng không còn nữa.

2. Định nghĩa một hàm ẩn danh.

Một hàm ẩn danh chỉ đơn giản là một hàm không có tên.

Ví dụ:

// Hàm thường
function helloWorld()
{
  return "Hello world";
}

// Hàm ẩn danh
function ()
{
  return "Hello world";
}

 

3. Cách sử dụng hàm ẩn danh.

Bởi vì các hàm này không có tên, nên chúng ta không thể gọi nó như một chức năng thường xuyên. Thay vào đó ta phải gán nó vào một biến hoặc cho vào 1 hàm khác khác như là một tham số.

Ví dụ:

// Hàm bình thường
function helloWorld()
{
  return "Hello world";
}
echo helloWorld();
// "Hello world"

// Hàm ẩn danh
// gán cho 1 biến
$hello = function () 
{
  return "Hello world";
}

// gọi hàm ẩn danh
echo $hello();
// "Hello world"

4. Truyền tham số.

Ví dụ:

$Toast = function($message)
{
    echo 'Hello '.$message;
};
// Call function
$Toast('PHP');

Để sử dụng các hàm ẩn danh, chúng ta gán nó vào một biến và sau đó gọi là biến như là một function như trên. Hoặc sử dụng hàm ẩn danh như thế này.

Ví dụ:

function Toast ($message){
  echo $message();
}

// Call function
Toast(function() {
  return "Hello world";
});

 

5. Tổng kết.

Hàm ẩn danh rất hữu dụng trong một số trường hợp, Đôi khi chúng ta không cần phải tạo hẳn một hàm cho ,một lần sử dụng duy nhất.

Thông thường, chúng ta sẽ cần một hàm để làm một công việc, nhưng nó không có nghĩa là chúng ta sẽ dùng nó trong phạm vi global. Thay vì có một hàm sử dụng một lần và sau đó bỏ đi để nó ở đó, chúng ta có thể sử dụng một hàm ẩn danh để thay thế.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.