Home  >  Article  >  Backend Development  >  How to use PHP callback functions (detailed examples)

How to use PHP callback functions (detailed examples)

WBOY
WBOYOriginal
2021-10-15 14:36:384828browse

In the previous article, I brought you "How to play with PHP custom functions (summary sharing)". This article introduces the custom functions in PHP in detail. This article This article takes a look at the basic callback functions in PHP functions. I hope to be helpful!

How to use PHP callback functions (detailed examples)

PHP callback function

Callback function, a function structure that can cooperate with anonymous functions and variable functions to achieve more functions .

What is a callback function?

The callback function in PHP actually means that when calling a function, instead of passing standard variables to the function as parameters, another function is passed as a parameter to the called function. The callback function is the function that takes the parameter.

It can be understood that the callback function is also a function we defined, but it is not called directly, but requires another function to be called.

The example is as follows:

<?php
    function arithmetic($a, $b, $c) {
        return $a($b, $c);
    }
    function add($b,$c){
        return $b+$c;
    }
    $d = arithmetic(&#39;add&#39;, 5, 9);
    echo &#39;5 + 9 =&#39;.$d;
?>

Output result:

How to use PHP callback functions (detailed examples)

In addition, PHP provides two functionscall_user_func() and call_user_func_array() to support callback functions.

The difference between these two functions is: call_user_func_array() receives the parameters of the callback function in the form of an array, while call_user_func() receives the parameters of the callback function in the form of specific parameters.

  • call_user_func_array()

The call_user_func_array function can call the callback function and then use an array as the parameter of the callback function . The syntax format is as follows:

call_user_func_array ($callback ,$param_arr)

In the syntax format, $callback is the called callback function, $param_arr is an index array, let’s take an example to see it in practice:

<?php
    function arithmetic($f, $m, $n) {
        return call_user_func_array($f, array($m, $n));
    }
    function add($m,$n){
        return $m+$n;
    }
    $sum = arithmetic(&#39;add&#39;, 3, 4);
    echo &#39;3 + 4 =&#39;.$sum;
?>

Output result:

How to use PHP callback functions (detailed examples)

  • ##call_user_func()

call_user_func function will One parameter is called as a callback function. The syntax format is as follows:

call_user_func ($callback [, $parameter, ... ])

Among them, $callback is the called callback function, and the remaining parameters are the parameters of the callback function. Use "

," between multiple parameters. "separated. Let’s take an example to see it in action:

<?php
    function arithmetic($f, $m, $n) {
        return call_user_func($f, $m, $n);
    }
    function add($m,$n){
        return $m+$n;
    }
    $sum = arithmetic(&#39;add&#39;, 250, 250);
    echo &#39;250 + 250 =&#39;.$sum;
?>

Output result:


How to use PHP callback functions (detailed examples)

Next, I will share with you a combination of variable function and callback function. Example:

<?php
function woziji($one,$two,$func){
       //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false
       if(!is_callable($func)){
               return false;
       }
       //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次
       //$func是一个变量函数,参见变量函数这一章
       echo $one + $two + $func($one,$two);
}
//我们定义几个函数试试
function plusx2( $foo , $bar){
       $result = ($foo+$bar)*2;
       return $result;
}
function jian( $x , $y ){
   $result = $x - $y;
   return $result;
}
//调用一下函数,woziji,向里面传入参数试试
echo woziji(20,10,&#39;plusx2&#39;);
//将plusx2改成jian试试结果
echo woziji(20,10,&#39;jian&#39;);
?>

Output result:


How to use PHP callback functions (detailed examples)

Recommended learning: "

PHP Video Tutorial"

The above is the detailed content of How to use PHP callback functions (detailed examples). 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