Ví dụ đơn giản dễ hiểu về Lambda Functions (PHP Lambda)
Lambda function (hoặc còn gọi là anonymous function) là một khái niệm trong lập trình mà bạn có thể hiểu như một "hàm nhỏ gọn" mà bạn không cần phải đặt tên cho nó. Điều này thường hữu ích khi bạn chỉ muốn sử dụng một đoạn mã ngắn một lần và không muốn phải đặt tên cho hàm đó.
Hãy tưởng tượng bạn đang viết một chương trình máy tính và bạn cần thực hiện một phép tính đơn giản, chẳng hạn như cộng hai số. Thay vì viết một hàm riêng biệt với tên, bạn có thể sử dụng lambda function.
Ở dạng dễ hiểu, lambda function giống như một mảnh giấy mà bạn viết một phép tính lên và sau đó gấp lại để dùng. Bạn không cần phải đặt tên cho mảnh giấy đó, và bạn chỉ cần mở ra và đọc nó khi bạn cần thực hiện phép tính đó.
Tất nhiên! Dưới đây là một ví dụ đơn giản và dễ hiểu về lambda functions trong PHP.
Giả sử bạn muốn tạo một chương trình PHP để tính bình phương của một danh sách các số nguyên. Thay vì viết một hàm riêng biệt để tính bình phương, bạn có thể sử dụng lambda function.
$numbers = [1, 2, 3, 4, 5];
// Sử dụng lambda function để tính bình phương của từng số
$calculateSquare = function($number) {
return $number * $number;
};
// Áp dụng lambda function cho từng số trong danh sách
$squares = array_map($calculateSquare, $numbers);
// In kết quả
print_r($squares);
Trong ví dụ này:
- Chúng ta tạo một mảng
$numbers
chứa các số nguyên. - Lambda function
calculateSquare
nhận một tham số$number
và trả về bình phương của số đó. - Hàm
array_map
được sử dụng để áp dụng lambda functioncalculateSquare
lên từng số trong danh sách$numbers
. - Kết quả là một mảng
$squares
chứa các bình phương tương ứng với mỗi số trong danh sách.
Khi chạy chương trình, bạn sẽ thấy kết quả là danh sách các số bình phương:
Array
(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)
Tóm lại, lambda function là một cách để bạn tạo ra những "mảnh giấy" chứa đoạn mã ngắn mà không cần phải đặt tên cho chúng. Điều này hữu ích khi bạn chỉ cần sử dụng đoạn mã đó tại một chỗ cụ thể và không cần lưu trữ nó thành một hàm riêng biệt.