Maison  >  Article  >  développement back-end  >  PHP call_user_func_array

PHP call_user_func_array

王林
王林original
2024-08-29 12:46:02492parcourir

En PHP, call_user_func est l'une des fonctions intégrées qui fournit des appels à invoquer qui est construit en PHP. Il s'agit de l'appel call_user_func_array qui est défini comme un rappel pour transmettre les paramètres qui sont entièrement enveloppés dans un tableau et une telle fonction de rappel est connu sous le nom de call_user_func_array. En général, call_user_func-array est défini comme un call_user_func qui est une fonction de rappel où il appelle le rappel donné par le premier paramètre avec ces paramètres enveloppés comme dans un tableau est connu sous le nom de fonction call_user_func_array qui est fournie par les bibliothèques PHP, donc cette fonction appelle un utilisateur fonction avec le tableau de paramètres donné.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

mixed call_user_func_array( callable $callback, array $args);

Dans la syntaxe ci-dessus, le paramètre callable est une fonction de rappel qui est « callable » qui doit être appelée, et le deuxième paramètre « args » est un tableau de paramètres où ce paramètre « args » doit être transmis au fonction de rappel sous forme de tableau indexé. Par conséquent, l'appelable peut appeler une fonction personnalisée appelée fonction appelable et l'autre paramètre consiste en un tableau de paramètres où les deux arguments de ce call_user_func-array sont obligatoires à spécifier lors de l'utilisation de cette fonction dans les programmes PHP. Par conséquent, cette fonction intégrée appelle le rappel qui est spécifié ou déclaré dans le premier argument et les paramètres restants sont transmis sous forme de tableau de paramètres dans le deuxième argument de cette fonction qui est généralement utilisé pour appeler les fonctions définies par l'utilisateur.
La fonction de syntaxe ci-dessus renverra la valeur de retour du rappel si la condition est vraie, sinon elle renverra false si cela entraîne une erreur.

Comment fonctionne la fonction call_user_func_array() ?

En Php, il existe une fonction intégrée call_func_user() qui est généralement utilisée pour appeler la fonction de rappel qui sera transmise comme premier paramètre à cette fonction où le paramètre appelable est généralement déclaré comme étant appelé. Cette même fonction est utilisée pour passer les paramètres restants comme arguments sous forme de tableau. Il existe une autre fonction en PHP telle que call_user_func_array() et cette fonction fonctionne comme suit, elle vérifiera d'abord les paramètres où le premier paramètre sera toujours la fonction de rappel qui est appelable et est appelé puis à cette fonction, nous transmettons les paramètres restants sous forme de tableau du paramètre comme deuxième argument du rappel qui est appelé. En détail, nous pouvons dire que le premier paramètre de rappel appellera la fonction définie dans le programme avant de spécifier cette fonction call_user_func_array, puis cette fonction est déclarée dans la fonction d'appel en utilisant son nom et nous passerons le paramètre de la fonction comme deuxième argument à le call_user_func_array comme paramètres restants qui seront un tableau de paramètres. Laissez-nous comprendre le fonctionnement clair de cette fonction avec des exemples dans la section ci-dessous.

Exemple n°1

Code :

<?php
echo "Demonstration of call_user_func_array in PHP ";
echo " \n";
function func1($a, $b) {
echo __FUNCTION__, " got $a and $b\n";
}
class class_func {
function bar($a, $b) {
echo __METHOD__, " got $a and $b\n";
}
}
call_user_func_array("func1", array("one", "two"));
$class_func = new class_func;
call_user_func_array(array($class_func, "bar"), array("three", "four"));
?>

Sortie :

PHP call_user_func_array

In the above example, we can see that to write any PHP program we first start with “ ”. Then to print any message to the console then we use the “echo” command. Firstly we declare a function with the name “func1” and this function has two different parameters passed to this function func1 and this function has only an echo command which will print the values passed as a parameter to this function when called. This function func1() is called using a callback parameter in the call_user_func_array as seen in line 16 and then we pass values to the parameters declared for the function func1() as “one” and “two” which will be taken as an array of parameters to the call-user_func_array where this is one of the helpful facts of this function where we can call the function along with the values of its parameters passed using any number of parameters to the given or defined function in the program. Then we are using the class method also where we are defining a class with the name “class_func” and then using the class object created using the “new” command, later we use the call_user_func_array function to print the values of the function “bar” which is defined within the class, therefore, we first pass the class name as the first parameter to the array function and then “bar” function as the second parameter to the array function then later we will be passing remaining parameters of the bar as the second argument to the array function. The output of the above program can be seen in the screenshot above.

Example #2

In this example, we will see calling the call_user_func_array using the namespace name in the below program. In the above program, we saw using the class method for the demonstration of call_user_func_array.

Code:

<?php
namespace func1;
echo "Demonstration of call_user_func_array in PHP using namespace ";
echo " \n ";
class class_func {
static public function test($n) {
print "Hello {$n}!\n";
}
}
call_user_func_array(__NAMESPACE__ .'\class_func::test', array('Educba'));
call_user_func_array(array(__NAMESPACE__ .'\class_func', 'test'), array('People'));
?>

Output:

PHP call_user_func_array

In the above program which is similar to the previous example but in this program we are using namespace as function name and then we are declaring the class where when using call_user_func_array we use “_NAmESPACE_” instead of “_FUNCTION_” in it and then pass the other parameters as an array to this function which will print the values or logic of the class “test” function where it prints the values passed as the “n” value along with the message given and in this program, we are printing two messages by passing these “values”. The output of this program is as shown in the above screenshot.

Conclusion

In this article, we conclude that in PHP call_user_func_array function as a callback function which is user-defined as we are declaring the callable callback function as the first argument and the remaining parameter of that function as the second argument. We should note that we are passing parameters with its values but we are not passing the reference. Therefore, this function can be used whenever there are any array of parameters for the function we can easily use and execute the given function using this call_user_func_array function in PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP array_pop()Article suivant:PHP array_pop()