Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Callback/Callable trong PHP

Định nghĩa và cách sử dụng

Callback là một pseudo-type trong PHP. Từ PHP 5.4, type hint Callable được giới thiệu, tương tự như Callback. Khi một đối tượng được xác định là callable, nghĩa là nó có thể được sử dụng như một function có thể gọi. Một callable có thể là function built-in, user-defined function, hoặc method bên trong class.

Hàm is_callable() dùng để kiểm tra xem một identifier có phải callable hay không. PHP có call_user_func() chấp nhận tên function làm tham số.

Ví dụ

Function built-in là callable

<?php
var_dump(is_callable("abs"));
?>

Kết quả

bool(true)

User-defined function là callable

<?php
function myfunction() {
    echo "Hello World";
}
echo is_callable("myfunction") . "\n";
call_user_func("myfunction");
?>

Kết quả

1
Hello World

Object method làm callable

Để truyền method của object như callable, truyền object và tên method như hai phần tử trong mảng:

<?php
class MyClass {
    function mymethod() {
        echo "This is a callable\n";
    }
}
$obj = new MyClass();
call_user_func(array($obj, "mymethod")); // mảng literal
call_user_func([$obj, "mymethod"]);      // short array syntax
?>

Kết quả

This is a callable
This is a callable

Static method làm callable

Static method cũng có thể truyền như callable. Thay vì object, tên class là phần tử đầu tiên trong mảng:

<?php
class MyClass {
    static function mymethod() {
        echo "This is a callable\n";
    }
}
$obj = new MyClass();
call_user_func(array("MyClass", "mymethod"));
// Dùng toán tử phạm vi
call_user_func("MyClass::mymethod");
?>

Kết quả

This is a callable
This is a callable