Maison  >  Article  >  développement back-end  >  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()

墨辰丷
墨辰丷original
2018-06-06 11:48:051463parcourir

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;, "",""); 
//显示  
?>

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"),""); 
//显示 
?>

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("", "")); 
//显示 
?>

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("", "")); 
//显示 
?>

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; // 
?>

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

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
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!

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