Các hàm callback trong PHP là dạng hàm có thể được truyền như đối số cho một hàm khác hoặc được sử dụng như một giá trị trả về từ một hàm. Điều này cung cấp khả năng linh hoạt trong việc xử lý logic trong chương trình. Hàm callback là cơ chế mạnh mẽ cho phép thực hiện nhiều tác vụ khác nhau như xử lý bất đồng bộ, phân tách logic hay xử lý sự kiện,… Hãy cùng Vietnix tham khảo thêm về hàm callback trong PHP qua các bài viết sau.
Hàm callback là gì?
Hàm callback trong PHP là một hàm đối tượng/tham chiếu có dạng callable, nghĩa là dùng để gọi một hàm trước đó có sẵn hoặc do người dùng tạo ra để thực thi theo yêu cầu của người dùng. Biến callback cũng có thể hoạt động như một hàm, có bao gồm phương thức đối tượng và lớp tĩnh. Có một số cách để triển khai callback như sau:
Mọi người cũng xem:
Các phương thức triểm khai hàm callback trong PHP
Callback tiêu chuẩn
Trong PHP sẽ dùng hàm call_user_func()
, có đối số là tên chuỗi của hàm được gọi.
Ví dụ:
<?php
// PHP program to illustrate working
// of a standard callback
// Function to print a string
function someFunction() {
echo "Vietnix Hosting \n";
}
// Standard callback
call_user_func('someFunction');
?>
Output như sau:
Vietnix Hosting
Phương thức callback class tĩnh
Phương thức này cũng được gọi bằng cách sử dụng hàm call_user_func()
, có đối số là mảng chứa tên chuỗi của clas và phương thức được gọi ở bên trong.
Ví dụ:
<?php
// PHP program to illustrate working
// of a Static class method callback
// Sample class
class GFG {
// Function used to print a string
static function someFunction() {
echo "Parent Vietnix Hosting \n";
}
}
class Article extends GFG {
// Function to print a string
static function someFunction() {
echo "Vietnix Hosting Article \n";
}
}
// Static class method callback
call_user_func(array('Article', 'someFunction'));
call_user_func('Article::someFunction');
// Relative Static class method callback
call_user_func(array('Article', 'parent::someFunction'));
?>
Output như sau:
Vietnix Hosting Article
Vietnix Hosting Article
Parent Vietnix Hosting
Phương thức callback đối tượng
Các phương thức đối tượng có thể được gọi bằng cách dùng hàm call_user_func()
trong đó đối số là một mảng chứa biến đối tượng và tên chuỗi phương thức được gọi.
Phương thức đối tượng cũng có thể được gọi nếu chúng được tạo ra bằng cách sử dụng định nghĩa hàm __invoke()
. Trong trường hợp này, đối số của hàm call_user_func()
chính là biến đối tượng.
Ví dụ:
<?php
// PHP program to illustrate working
// of a object method callback
// Sample class
class GFG {
// Function to print a string
static function someFunction() {
echo "Vietnix Hosting \n";
}
// Function used to print a string
public function __invoke() {
echo "invoke Vietnix Hosting \n";
}
}
// Class object
$obj = new GFG();
// Object method call
call_user_func(array($obj, 'someFunction'));
// Callable __invoke method object
call_user_func($obj);
?>
Output như sau:
Vietnix Hosting
invoke Vietnix Hosting
Phương thức closure callback
Hàm này được gọi bằng cách thực hiện các lệnh callback tiêu chuẩn hoặc mapping hàm closure tới mảng các đối số hợp lệ được cung cấp cho hàm này bằng cách sử dụng hàm array_map()
trong đó các đối số là hàm closure và một mảng các đối số hợp lệ của nó.
Ví dụ:
<?php
// PHP program to illustrate working
// of a closure callback
// Closure to print a string
$print_function = function($string) {
echo $string."\n";
};
// Array of strings
$string_array = array("Vietnix", "Hosting", "Article");
// Callable closure
array_map($print_function, $string_array);
?>
Output như sau:
Vietnix
Hosting
Article
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về hàm callback trong PHP cũng như cách sử dụng hàm qua các ví dụ. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình, chúc bạn thành công!