Maison > développement back-end > tutoriel php > Comment appeler une fonction définie par l'utilisateur en PHP à l'aide de la fonction call user func()

Comment appeler une fonction définie par l'utilisateur en PHP à l'aide de la fonction call user func()

墨辰丷
Libérer: 2023-03-30 06:44:02
original
1499 Les gens l'ont consulté

Cet article présente principalement comment appeler la fonction user func() en PHP pour appeler des fonctions auto-définies. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

La fonction call_user_func est similaire à une méthode spéciale d'appel d'une fonction. La méthode d'utilisation est la suivante :

<?php
function nowamagic($a,$b) 
{ 
 echo $a; 
 echo $b; 
} 
call_user_func(&#39;nowamagic&#39;, "",""); 
call_user_func(&#39;nowamagic&#39;, "",""); 
//显示  
?>
Copier après la connexion

Il est étrange d'appeler la méthode à l'intérieur de la classe. utilise un tableau. Je ne connais pas le développeur. Comment considérer, bien sûr, new est omis, ce qui est également assez innovant :

<?php
class a { 
 function b($c) 
 { 
  echo $c; 
 } 
} 
call_user_func(array("a", "b"),""); 
//显示 
?>
Copier après la connexion

La fonction call_user_func_array est très similaire à call_user_func, mais c'est juste. transmet les paramètres d'une manière différente, rendant la structure des paramètres plus claire :

<?php
function a($b, $c) 
{ 
 echo $b; 
 echo $c; 
} 
call_user_func_array(&#39;a&#39;, array("", "")); 
//显示 
?>
Copier après la connexion

La fonction call_user_func_array peut également appeler des méthodes à l'intérieur de la classe :

<?php
Class ClassA 
{ 
function bc($b, $c) { 
  $bc = $b + $c; 
echo $bc; 
} 
} 
call_user_func_array(array(&#39;ClassA&#39;,&#39;bc&#39;), array("", "")); 
//显示 
?>
Copier après la connexion

La fonction call_user_func et la fonction call_user_func_array prend en charge les références, ce qui les rend plus cohérentes avec les appels de fonction ordinaires. Conformément à la fonction :

<?php
function a($b) 
{ 
 $b++; 
} 
$c = ; 
call_user_func(&#39;a&#39;, $c); 
echo $c;//显示 
call_user_func_array(&#39;a&#39;, array($c)); 
echo $c;//显示 
?>
另外,call_user_func函数和call_user_func_array函数都支持引用。
view sourceprint?
<?php
function increment(&$var)
{
 $var++;
}
$a = ;
call_user_func(&#39;increment&#39;, $a);
echo $a; // 
call_user_func_array(&#39;increment&#39;, array(&$a)); // You can use this instead
echo $a; // 
?>
Copier après la connexion

Ce qui suit présente comment utiliser call_user_func pour appeler une fonction personnalisée <. 🎜>

Utilisez la fonction call_user_func en passant une chaîne. Les fonctions peuvent appeler des fonctions personnalisées et prendre en charge des références.

1.mixed call_user_func ( callable $callback [, Mixed $parameter [, Mixed $... ]] )

Appelle la personnalisation fournie par le premier paramètre Function , les paramètres suivants sont les paramètres de la fonction personnalisée, et le résultat de la fonction personnalisée est renvoyé

function say($word)
{
 echo $word;
}
call_user_func(&#39;say&#39;, &#39;hello world&#39;); //hello world
当然也可以调用类中的方法:
class A {
 function say($word = &#39;&#39;)
 {
  echo $word;
 }
} 
$a = new A(); //注意,必须是要实例化的,除非是static
call_user_func(array($a, &#39;say&#39;), &#39;hello world&#39;); //hello world
Copier après la connexion

2.mixed call_user_func_array ( callable $callback , array $param_arr )

En parlant de cela, les fonctions call_user_func_array et call_user_func ont les mêmes fonctions, mais il y a quelques différences lors de l'appel des paramètres :

function a($word)
{
 echo $word;
}
class A {
 function say($word = &#39;&#39;)
 {
  echo $word;
 }
}
call_user_func_array(&#39;a&#39;, array(&#39;hello world&#39;)); //hello world
$a = new A(); //注意,必须是要实例化的,除非是static
call_user_func_array(array($a, &#39;say&#39;), array(&#39;hello world&#39;)); //hello world
Copier après la connexion
Résumé : Ce qui précède est tout le contenu de cet article, je j'espère que cela sera utile à l'apprentissage de chacun.

Recommandations associées :

Utilisation et exemples de file d'attente de messages PHP

Utilisation et exemples de sémaphore PHP

Fonctions de mise à l'échelle et de découpe d'images 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal