Heim > Artikel > Backend-Entwicklung > Verwendung von PHP-Callback-Funktionen (detaillierte Beispiele)
Im vorherigen Artikel habe ich Ihnen „So spielen Sie mit benutzerdefinierten PHP-Funktionen (Zusammenfassungsfreigabe)“ vorgestellt. In diesem Artikel werfen wir einen Blick auf die grundlegende Rückruffunktion von PHP in der Funktion. Hoffe, es hilft allen!
Was ist eine Rückruffunktion?
Die Rückruffunktion in PHP bedeutet tatsächlich, dass beim Aufrufen einer Funktion keine Standardvariablen als Parameter an die Funktion übergeben werden, sondern eine andere Funktion als Parameter an die aufgerufene Funktion. Es versteht sich, dass die Rückruffunktion ebenfalls eine von uns definierte Funktion ist, sie wird jedoch nicht direkt aufgerufen, sondern erfordert den Aufruf einer anderen Funktion. Das Beispiel sieht wie folgt aus:<?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; ?>Ausgabeergebnis:
Darüber hinaus stellt PHP zwei Funktionen call_user_func()
und call_user_func_array()
zur Verfügung Handle-Callbacks-Funktion zur Unterstützung. 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 函数会把第一个参数作为回调函数来调用,语法格式如下:
call_user_func ($callback [, $parameter, ... ])
其中, $callback 是被调用的回调函数,其余参数是回调函数的参数,多个参数之间使用",
<?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; ?>Im Syntaxformat ist $callback die aufgerufene Callback-Funktion, $param_arr ist ein Indexarray. Nehmen wir ein Beispiel, um es in der Praxis zu sehen:
<?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'); ?>
,
“, um mehrere Parameter zu trennen. Nehmen wir ein Beispiel, um es in Aktion zu sehen: 🎜rrreee🎜 Ausgabeergebnis: 🎜🎜🎜🎜🎜🎜 Als nächstes möchte ich Ihnen ein Beispiel für die Kombination von Variablenfunktion und Rückruffunktion zeigen: 🎜rrreee🎜 Ausgabeergebnis: 🎜🎜🎜🎜🎜 🎜 Empfohlenes Lernen:《🎜PHP-Video-Tutorial🎜》🎜Das obige ist der detaillierte Inhalt vonVerwendung von PHP-Callback-Funktionen (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!