Hướng dẫn lambda function in php
Vừa qua mình gặp 1 tình huống là phải dùng hàm call back để xử lý vấn đề, thế là tìm hiểu luôn cái lý thuyết về php closure xem nó là như thế nào. trước hết là tìm hiểu Lambda. Show Lambda là gì?Các hàm lambda là các hàm ẩn danh (anonymous function), sử dụng một lầ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 1 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. Hàm ẩn danhMột hàm ẩn danh chỉ đơn giản là một hàm không có tên. Ví dụ
Sử dụng hàm ẩn danhBởi vì các hàm này không có tê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ụ
Để 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 Lambda như thế này:
Tại sao dùng LambdaLambdas rất hữu dụng, bởi vì chúng ta không cần phải tạo hẳn 1 hàm cho 1 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 Lambda để thay thế. Tất nhiên, chúng ta có thể sử dụng chức năng
Closure là gì?Một Closure (bao đóng :-s) về cơ bản giống như một Lambda, ngoài ra nó có thể truy cập các biến bên ngoài phạm vi mà nó được tạo ra. Ví dụ:
Như chúng ta có thể thấy ở trên, Closure có thể truy cập biến Nếu chúng ta thay đổi biến
Closure cũng rất hữu ích khi sử dụng các hàm PHP mà chấp nhận hàm Ví dụ:
Ngoài ra, chúng ta có thể truy cập các biến bên ngoài phạm vi của Closure bằng cách sử dụng
Sử dụng Closure trong trường hợp cụ thểVí dụ trong Laravel
Như vậy là có 1 link Đó là ví dụ, còn tình huống của mình là thế này
Kết luậnTài liệu:
|