Home >Backend Development >PHP Tutorial >How to call user-defined function in PHP using call user func() function

How to call user-defined function in PHP using call user func() function

墨辰丷
墨辰丷Original
2018-06-06 11:48:051465browse

This article mainly introduces how the call user func() function in PHP calls a custom defined function. Interested friends can refer to it. I hope it will be helpful to everyone.

The call_user_func function is similar to a special method of calling a function. The usage method is as follows:

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

It is strange to call the method inside the class. It actually uses an array. I don’t know how the developer did it. Of course, new is omitted, which is quite innovative:

<?php
class a { 
 function b($c) 
 { 
  echo $c; 
 } 
} 
call_user_func(array("a", "b"),""); 
//显示 
?>

The call_user_func_array function is very similar to call_user_func, except that the parameters are passed in a different way to make the parameter structure clearer:

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

The call_user_func_array function can also call methods inside the class:

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

Both the call_user_func function and the call_user_func_array function support references, which makes them more functionally consistent with ordinary function calls:

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

The following will introduce how to use call_user_func to call a custom function

Using the call_user_func function, you can call a custom function by passing in a string function, and it supports Quote.

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

Call the customization provided by the first parameter Function, the following parameters are the parameters of the custom function, and the result of the custom function is returned

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)

It is said that the call_user_func_array and call_user_func functions have the same function, but there are some differences when calling parameters:

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

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's learning.

Related recommendations:

Usage and examples of PHP message queue

Usage and examples of PHP semaphore

php image scaling and cutting function

The above is the detailed content of How to call user-defined function in PHP using call user func() function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn