Hàm ẩn danh là một trong những tính năng hay và hữu ích trong PHP đang được sử dụng rộng rãi. Các hàm ẩn danh tạo điều kiện để viết cấu trúc tốt và mã dễ đọc hơn. Nó cũng có thể được sử dụng như các cuộc gọi lại
Chức năng ẩn danh là gì?Các hàm ẩn danh tương tự như các hàm thông thường và cũng chấp nhận các đối số và giá trị trả về. Sự khác biệt chính giữa cả hai chức năng ẩn danh không có tên được chỉ định và có thể được gán trong một biến. Các chức năng này hữu ích nhất khi gọi lại. Xem ví dụ sau để tạo một chức năng ẩn danh đơn giản
Vì một hàm ẩn danh là một biểu thức nên nó có thể được sử dụng theo nhiều cách khác nhau và hữu ích
Gán cho một biến
Một hàm ẩn danh có thể được gán trong một biến, thậm chí có thể được lưu trữ nhiều hàm ẩn danh khác nhau trong một mảng
Đầu ra sẽ là.
Xin chào William.
Xin chào Sachin.
Bây giờ, chúng tôi lưu trữ các chức năng ẩn danh bên trong một mảng. Xem ví dụ sau
Người dùng có ba lựa chọn [1, 2, 3] cho máy của nhà cung cấp. Có ba loại vật phẩm Chai nước, Nước trái cây và Kẹo
nếu $choice = 1 thì đầu ra sẽ là “Có chai nước”.
nếu $choice = 2 thì đầu ra sẽ là “Got Juice”
nếu $choice = 3 thì đầu ra sẽ là “Got Sweets”
Một bao đóng không là gì ngoài một hàm ẩn danh sử dụng một hoặc nhiều biến và truy cập khi được gọi. Nói cách khác, một bao đóng có khả năng tương tác với các biến từ môi trường bên ngoài
Gọi lại
Hàm gọi lại được truyền dưới dạng đối số cho hàm khác. Nhiều chức năng tích hợp sẵn chấp nhận gọi lại. Hãy lấy một hàm mảng của PHP array_map[]
sử dụng nội tuyến
Đầu ra sẽ là.
Mảng [ [0] => 35 [1] => 45 [2] => 15 [3] => 65 [4] => 55]
Sử dụng một chức năng bình thường như gọi lại
Một chức năng bình thường cũng có thể được sử dụng như gọi lại. Trong trường hợp này, tên của hàm được chuyển dưới dạng gọi lại. Xem ví dụ sau với hàm array_filter[]. Trong ví dụ này, chúng tôi lọc các số chia hết cho 2
Đầu ra sẽ là.
Mảng [ [0] => 10 [1] => 20 [4] => 18 ]
Sử dụng các chức năng tích hợp làm gọi lại
Sử dụng gọi lại với các lớp
Các ví dụ sau giúp bạn hiểu việc sử dụng các cuộc gọi lại với các lớp
Sử dụng gọi lại với phương thức bình thường
Giả sử, có một mảng các phần tử số và cần thêm 5 vào mỗi phần tử
Đầu ra sẽ là.
Mảng [ [0] => 10 [1] => 45 [2] => 8 [3] => 16 [4] => 82 ]
Trong hàm array_map[] tham số đầu tiên là một mảng có hai phần tử, $this đầu tiên cho biết Số lớp hiện tại và thứ hai là tên phương thức [“adding5”] của Số lớp. Phương thức lớp add5[] cũng có thể là riêng tư