Chức năng ẩn danh trong PHP với ví dụ là gì?

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

$func = function($name){
return $name;
};

echo $func('The Elementary');
?>

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

$greeting = function($name){
return 'Hello '.$name. ' !';
};

//Call the anonymous function
echo $greeting('William');
echo '
';
echo $greeting('Sachin');
?>

Đầ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

$machine = [
1=> function(){
echo "Got Water bottle
";
},
2=> function(){
echo "Got Juice
";
},
3=> function(){
echo "Got Sweets
";
},
];

$choice = 1;
echo $machine[$choice]();
$choice = 2;
echo $machine[$choice]();
$choice = 3;
echo $machine[$choice]();
?>

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”

Sử dụng các chức năng ẩn danh như đóng cửa

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

$greetingWord = "Hello";

$greeting = function($name) use($greetingWord) {
return $greetingWord.' '.$name;
};

echo $greeting('Sachin');

//Output:
//Hello Sachin
?>
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

$numbers = [30, 40, 10, 60, 50];
print_r(array_map(function{
return $no + 5;
}, $numbers)
);
?>

Đầ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

function checkVisibility($no)
{
if($no%2 == 0){
return $no;
}
}

$numbers = [10, 20, 15 , 17, 18, 7];
print_r(array_filter($numbers, 'checkVisibility'));
?>

Đầ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

$names = ['Sachin', 'Tom', 'William', 'Rohit'];

print_r(array_map('strtoupper', $names));

//Output:
//Array ( [0] => SACHIN [1] => TOM [2] => WILLIAM [3] => ROHIT )
?>
//Trim all post data
print_r(array_map('trim', $_POST));


//Remove all HTML Tags from post data
print_r(array_map('strip_tags', $_POST));
?>

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ử

class Number {
public function adding5($no)
{
return $no + 5;
}
}

$noObj = new Number();
$nos = [5, 40, 3, 11, 77];
print_r(array_map([$noObj, 'adding5'], $nos));

//OR

print_r(array_map(['Number', 'adding5'], $nos));
?>

Đầ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ư

Hàm ẩn danh trong PHP là gì?

Hàm ẩn danh, còn được gọi là bao đóng, cho phép tạo các hàm không có tên cụ thể . Chúng hữu ích nhất với vai trò là giá trị của các tham số có thể gọi được, nhưng chúng cũng có nhiều cách sử dụng khác. Các hàm ẩn danh được triển khai bằng lớp Đóng.

chức năng ẩn danh với ví dụ là gì?

Các hàm ẩn danh thường là các đối số được truyền cho các hàm bậc cao hơn hoặc được sử dụng để xây dựng kết quả của một hàm bậc cao hơn cần trả về một hàm. If the function is only used once, or a limited number of times, an anonymous function may be syntactically lighter than using a named function.

Chức năng ẩn danh nghĩa là gì?

Chức năng ẩn danh . Thông thường chúng ta sử dụng từ khóa function trước tên hàm để định nghĩa một hàm trong JavaScript, tuy nhiên, trong các hàm ẩn danh trong JavaScript, chúng ta chỉ sử dụng từ khóa function mà không có tên hàm

Chức năng ẩn danh khác với chức năng bình thường trong PHP như thế nào?

Đó là điểm khác biệt giữa hàm thông thường và hàm ẩn danh. Không thể truy cập chức năng ẩn danh sau khi đã tạo; . Có thể có một số đối số cho một hàm ẩn danh, nhưng chỉ có một biểu thức. . There can be several arguments to an anonymous function, but only one expression.