站长网 PHP教程 为你解析PHP回调函数

为你解析PHP回调函数

PHP 中的回调函数与 C、Java 等语言的回调函数的作用是一模一样的,都是在函数执行的过程中,跳转到回调函数中,当回调函数执行完毕之后,再回到之前的函数处理接下来的程序。 PHP中回调函数的实现在 PHP 中调用回调函数,不像 C、Java 等语言那样直接使用

PHP 中的回调函数与 C、Java 等语言的回调函数的作用是一模一样的,都是在函数执行的过程中,跳转到回调函数中,当回调函数执行完毕之后,再回到之前的函数处理接下来的程序。

PHP中回调函数的实现
在 PHP 中调用回调函数,不像 C、Java 等语言那样直接使用函数名作为函数参数,而是使用函数名对应的字符串名称来调用。

示例代码如下所示:

<?php

function arithmetic($funcName, $m, $n) {

return $funcName($m, $n);

}

function add($m,$n){

return $m+$n;

}

 

$sum = arithmetic('add', 5, 9);

echo '5 + 9 ='.$sum;

?>

运行结果如下:

5 + 9 =14

另外,PHP 还提供了两个内置函数 call_user_func() 和 call_user_func_array() 来对回调函数进行支持。这两个函数的区别是 call_user_func_array() 是以数组的形式接收回调函数的参数,而 call_user_func() 则是以具体的参数来接收回调函数参数的。

1) call_user_func()
call_user_func 函数会把第一个参数作为回调函数来调用,其语法格式如下:

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

其中,第一个参数 $callback 是被调用的回调函数,其余参数是回调函数的参数,多个参数之间使用,分隔。 【示例】下面通过一个简单的示例来演示一下 call_user_func 函数的使用。

<?php

function arithmetic($funcName, $m, $n) {

return call_user_func($funcName, $m, $n);

}

function add($m,$n){

return $m+$n;

}

 

$sum = arithmetic('add', 7, 17);

echo '7 + 17 ='.$sum;

?>

运行结果如下:

7 + 17 =24

2) call_user_func_array()
call_user_func_array 函数可以调用回调函数,并使用一个数组来作为回调函数的参数,其语法格式如下:

call_user_func_array ($callback ,$param_arr)

其中,第一个参数 $callback 是被调用的回调函数,$param_arr 是一个索引数组,用来存储需要传入回调函数中的具体参数。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/php/2021/0525/6469.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部