在先前的文章中為大家帶來了《如何玩轉PHP自訂函數(總結分享)》,這篇文章中詳細的介紹了PHP中的自訂函數,本篇文章來看看PHP函數中基本的回呼函數。希望對大家有幫助!
#回呼函數,一種可以配合匿名函數與變數函數而實作更多功能的函數結構。
什麼是回呼函數?
PHP中所講的回呼函數,其實就是指呼叫函數時不是向函數中傳遞標準的變數作為參數,而是將另一個函數當作參數,傳遞到呼叫的函數中,回調函數也就是這個作為參數的函數。
可以理解為,回呼函數也是我們定義的函數,但是它並不是直接呼叫的,而是需要另一個函數來呼叫。
範例如下:
<?php function arithmetic($a, $b, $c) { return $a($b, $c); } function add($b,$c){ return $b+$c; } $d = arithmetic('add', 5, 9); echo '5 + 9 ='.$d; ?>
輸出結果:
#另外,PHP 提供了兩個函數call_user_func()
和call_user_func_array()
來支援回呼函數。
這兩個函數的差異是: call_user_func_array() 是以陣列的形式接收回呼函數的參數,而 call_user_func() 則是以具體的參數來接收回調函數參數的。
call_user_func_array()
call_user_func_array 函數可以呼叫回呼函數,然後使用一個陣列來作為回呼函數的參數。語法格式如下:
call_user_func_array ($callback ,$param_arr)
在語法格式中,$callback 是被呼叫的回呼函數,$param_arr 是一個索引數組,下面舉個例子實際看一下:
<?php function arithmetic($f, $m, $n) { return call_user_func_array($f, array($m, $n)); } function add($m,$n){ return $m+$n; } $sum = arithmetic('add', 3, 4); echo '3 + 4 ='.$sum; ?>
輸出結果:
call_user_func()
call_user_func ($callback [, $parameter, ... ])
, "分隔。下面舉例實際看一下:
<?php function arithmetic($f, $m, $n) { return call_user_func($f, $m, $n); } function add($m,$n){ return $m+$n; } $sum = arithmetic('add', 250, 250); echo '250 + 250 ='.$sum; ?>
<?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,'plusx2'); //将plusx2改成jian试试结果 echo woziji(20,10,'jian'); ?>
PHP影片教學》
以上是PHP回呼函數怎麼使用(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!