call_user_func() es una función incorporada en PHP que se usa para llamar a la devolución de llamada proporcionada por el primer parámetro y pasa los parámetros restantes como argumento. Se utiliza para llamar a las funciones definidas por el usuario.
Sintaxis:
mixed call_user_func ( $function_name[, mixed $value1[, mixed $... ]])
Aquí, mixto indica que un parámetro puede aceptar varios tipos.
Parámetro: La función call_user_func() acepta dos tipos de parámetros, como se mencionó anteriormente y se describe a continuación:
- $function_name: Es el nombre de la función llamada en la lista de funciones definidas. Es un parámetro de tipo string.
- $value: Es un valor mixto. Uno o más parámetros que se pasarán a la función.
Valor devuelto: esta función devuelve el valor devuelto por la función de devolución de llamada.
Los siguientes programas ilustran la función call_user_func() en PHP:
Programa 1: Llamar a la función
<?php function GFG($value) { echo "This is $value site.\n"; } call_user_func('GFG', "GeeksforGeeks"); call_user_func('GFG', "Content"); ?>
This is GeeksforGeeks site. This is Content site.
Programa 2: call_user_func() usando el nombre del espacio de nombres
<?php namespace Geeks; class GFG { static public function demo() { print "GeeksForGeeks\n"; } } call_user_func(__NAMESPACE__ .'\GFG::demo'); // Another way of declaration call_user_func(array(__NAMESPACE__ .'\GFG', 'demo')); ?>
GeeksForGeeks GeeksForGeeks
Programa 3: Usar un método de clase con call_user_func()
<?php class GFG { static function show() { echo "Geeks\n"; } } $classname = "GFG"; call_user_func($classname .'::show'); // Another way to use object $obj = new GFG(); call_user_func(array($obj, 'show')); ?>
Geeks Geeks
Programa 4: Uso de la función lambda con call_user_func()
<?php call_user_func(function($arg) { print "$arg\n"; }, 'GeeksforGeeks'); ?>
GeeksforGeeks
Referencias: http://php.net/manual/en/function.call-user-func.php
Publicación traducida automáticamente
Artículo escrito por Mithun Kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA