Trong PHP, lambda là một loại hàm ẩn danh (anonymous function) tương tự như closure. Thực tế, tất cả các hàm ẩn danh trong PHP đều có thể gọi là lambda, và chúng có thể được lưu trữ trong các biến hoặc truyền dưới dạng đối số cho các hàm khác. Sự khác biệt chính giữa lambdaclosure là closure có thể “bắt giữ” các biến từ phạm vi bên ngoài của nó nhờ từ khóa use.

Cú pháp lambda trong PHP

Lambda được tạo bằng cách sử dụng từ khóa function mà không cần tên hàm. Ví dụ:

$lambdaFunction = function($name) {
    return "Hello, " . $name;
};

echo $lambdaFunction("Em");

Trong ví dụ này, $lambdaFunction là một lambda và có thể được gọi giống như một hàm thông thường.

Lambda và Closure

Về cơ bản, closurelambda trong PHP là giống nhau, tuy nhiên closure có khả năng “bắt” các biến từ phạm vi bên ngoài nhờ vào từ khóa use.

Ví dụ về Closure với use:

$greeting = "Hello";

$lambdaFunction = function($name) use ($greeting) {
    return $greeting . ", " . $name;
};

echo $lambdaFunction("Anh");

Ở đây, biến $greeting được nắm giữ bởi closure và sử dụng trong hàm.

Ứng dụng của Lambda

Lambda rất hữu ích trong các trường hợp cần sử dụng callback hoặc truyền các hàm vào các hàm khác.

Ví dụ sử dụng với array_map:

$numbers = [1, 2, 3, 4, 5];

$squared = array_map(function($num) {
    return $num * $num;
}, $numbers);

print_r($squared);  // Kết quả: [1, 4, 9, 16, 25]

Kết luận

Lambda trong PHP là một hàm ẩn danh và được sử dụng linh hoạt trong nhiều trường hợp như callback, xử lý dữ liệu mảng, hoặc truyền hàm dưới dạng tham số. Khi kết hợp với từ khóa use, nó trở thành một closure có khả năng bắt giữ các biến từ phạm vi bên ngoài.