Computer >> Máy Tính >  >> Lập trình >> PHP

Gọi lại PHP / Có thể gọi

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

Gọi lại là một kiểu giả trong PHP. Với PHP 5.4, gợi ý kiểu Callable đã được giới thiệu, tương tự như Callback. Khi một số đối tượng được xác định là có thể gọi được, điều đó có nghĩa là nó có thể được sử dụng như một hàm có thể được gọi. Một có thể gọi có thể là một hàm tích hợp sẵn hoặc do người dùng xác định hoặc một phương thức bên trong bất kỳ lớp nào.

Hàm is_callable () có thể được sử dụng để xác minh xem mã định danh có thể gọi được hay không. PHP có call_user_ functions () chấp nhận tên của một hàm làm tham số.

Ví dụ sau cho thấy một hàm tích hợp là một hàm có thể gọi được.

Ví dụ

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

bool(true)

Trong ví dụ sau, một hàm do người dùng xác định được kiểm tra để có thể gọi được.

Ví dụ

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

1
Hello World

Để truyền một phương thức đối tượng dưới dạng có thể gọi, bản thân đối tượng và phương thức của nó được truyền dưới dạng hai phần tử trong một mảng

Ví dụ

<?php
class myclass{
   function mymethod(){
      echo "This is a callable" . "\n";
   }
}
$obj=new myclass();
call_user_func(array($obj, "mymethod"));
//array passed in literal form
call_user_func([$obj, "mymethod"]);
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

This is a callable
This is a callable

Phương thức tĩnh trong một lớp cũng có thể được truyền dưới dạng có thể gọi được. Thay vì đối tượng, tên của lớp phải là phần tử đầu tiên trong tham số mảng

Ví dụ

<?php
class myclass{
   static function mymethod(){
      echo "This is a callable" . "\n";
   }
}
$obj=new myclass();
call_user_func(array("myclass", "mymethod"));
//using scope resolution operator
call_user_func("myclass::mymethod");
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

This is a callable
This is a callable