Bài 16: Hàm ẩn danh trong PHP
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 ...
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ế.