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('nowamagic', "",""); call_user_func('nowamagic', "",""); //显示 ?>
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('a', 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('ClassA','bc'), 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('a', $c); echo $c;//显示 call_user_func_array('a', array($c)); echo $c;//显示 ?> 另外,call_user_func函数和call_user_func_array函数都支持引用。 view sourceprint? <?php function increment(&$var) { $var++; } $a = ; call_user_func('increment', $a); echo $a; // call_user_func_array('increment', 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('say', 'hello world'); //hello world 当然也可以调用类中的方法: class A { function say($word = '') { echo $word; } } $a = new A(); //注意,必须是要实例化的,除非是static call_user_func(array($a, 'say'), 'hello world'); //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 = '') { echo $word; } } call_user_func_array('a', array('hello world')); //hello world $a = new A(); //注意,必须是要实例化的,除非是static call_user_func_array(array($a, 'say'), array('hello world')); //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!