Implementando devolución de llamada en PHP

En PHP, la devolución de llamada es un objeto/referencia de función con tipo callable . Una variable de devolución de llamada/invocable puede actuar como una función, un método de objeto y un método de clase estático. Hay varias formas de implementar una devolución de llamada. Algunos de ellos se discuten a continuación:

Devolución de llamada estándar: en PHP, las funciones se pueden llamar usando la función call_user_func() donde argumentos es el nombre de la string de la función a llamar.

Ejemplo:

<?php
  
// PHP program to illustrate working
// of a standard callback
  
// Function to print a string
function someFunction() {
    echo "Geeksforgeeks \n";
}
  
// Standard callback
call_user_func('someFunction');
?>
Producción:

Geeksforgeeks

Devolución de llamada de método de clase estática: los métodos de clase estática se pueden llamar usando call_user_func() donde el argumento es una array que contiene el nombre de string de la clase y el método dentro de ella que se va a llamar.

Ejemplo:

<?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 Geeksforgeeks \n";
    }
}
  
class Article extends GFG {
  
    // Function to print a string
    static function someFunction() {
        echo "Geeksforgeeks 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'));
?>
Producción:

Geeksforgeeks Article
Geeksforgeeks Article
Parent Geeksforgeeks

Devolución de llamada del método de objeto: los métodos de objeto se pueden llamar usando call_user_func() donde el argumento es una array que contiene la variable de objeto y el nombre de string del método que se va a llamar. El método de objeto también se puede llamar si se pueden invocar usando la definición de función __invoke(). En este caso, el argumento de la función call_user_func() es la propia variable del objeto.

Ejemplo:

<?php
  
// PHP program to illustrate working
// of a object method callback
  
// Sample class
class GFG {
  
    // Function to print a string
    static function someFunction() {
        echo "Geeksforgeeks \n";
    }
  
    // Function used to print a string
    public function __invoke() {
        echo "invoke Geeksforgeeks \n";
    }
}
  
// Class object
$obj = new GFG();
  
// Object method call
call_user_func(array($obj, 'someFunction'));
  
// Callable __invoke method object 
call_user_func($obj);
  
?> 
Producción:

Geeksforgeeks
invoke Geeksforgeeks

Devolución de llamada de cierre: las funciones de cierre se pueden hacer invocables haciendo llamadas estándar o asignando la función de cierre a una array de argumentos válidos dados a la función de cierre usando la función array_map() donde los argumentos son la función de cierre y una array de sus argumentos válidos.

Ejemplo:

<?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("Geeksforgeeks", "GFG", "Article");
  
// Callable closure
array_map($print_function, $string_array);
  
?>
Producción:

Geeksforgeeks
GFG
Article

Publicación traducida automáticamente

Artículo escrito por Harshit Saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *