There is a function call_user_func in the UCenter source code, and I thought it was myself at first The result of the defined function cannot be found anywhere. Later I learned that call_user_func is a built-in function of PHP. This function allows users to call directly written functions and pass in certain parameters. Here is a summary of how to use this function.
The call_user_func function is similar to a special method of calling a function. The method of use is as follows:
<?php function nowamagic($a,$b) { echo $a; echo $b; } call_user_func('nowamagic', "",""); call_user_func('nowamagic', "",""); //显示 ?>
It’s strange to call the method inside the class. It actually uses array. I don’t know what the developer thought about 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 structure of the parameters 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
Use the call_user_func function to call a custom function by passing in a string function and support references.
1.mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
Call the custom function provided by the first parameter, the following parameters are the parameters of the custom function, and return the result of the custom function
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 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
Note: The other two similar functions are call_user_method and call_user_method_array(), but they were discontinued and abandoned after PHP 4.1