Hàm callback là hàm sử dụng với mục đích như một tham số cho hàm khác. Hàm callback có thể là một hàm thông thường trong PHP, cũng có thể là hàm trong một đối tượng, một static method trong một lớp.

1)Nếu hàm callback là một hàm global

function phepcong($a, $b) {
    echo ($a+$b), PHP_EOL;
}

function phepnhan($a, $b) {
    echo ($a * $b), PHP_EOL;
}

function tinhtoan($pheptinh, $a, $b) {
    $pheptinh($a, $b);
}

tinhtoan('phepcong', 5,5);
tinhtoan('phepnhan', 5,5);

phepcong, phepnhan được sử dụng như callback, là tham số cho hàm tinhtoan.

2)Nếu hàm callback là một hàm trong class

Việc truyền tham số callback dạng này sẽ thực hiện như sau

Nếu hàm callback và hàm gọi nó cùng một lớp

$this->hamgoi([$this, 'hamcallback']);

Nếu hàm callback và hàm gọi không cùng một lớp (hàm callback nằm trong OtherClass)

$myObject->hamgoi([new OtherClass(), 'myCallback']);

3) Nếu hàm callback là một hàm tĩnh trong class (static method)

Ngoài thực hiện như (2) còn có thể gọi bằng cách chỉ ra một mảng $params chứa tên lớp và tên hàm để truyền cho hàm gọi

$param = array('ten-lop','ten-ham-tinh');
//ten-lop có thể là: 
//__CLASS__
//'\Namespace\MyClass'
//MyClass::class
$myObject->hamgoi($param)

 4) Hàm callback như là một anonymous

$myObject->hamgoi(function($pr) {
    //Do something
});

 

 

 

 

 

 

 

Đăng ký theo dõi ủng hộ kênh