php回調函數原理和實例
原理
自己調用自己 稱之為“遞歸”,而不是回調
你也知道回調的關鍵是這個回
既然是回,那么就有一個誰是主體的問題,因為回調是往回調用的意思
我調用了函數A,而函數A在執行過程中調用了我提供的函數B,這個函數B就稱為函數A的回調函數
顯然主體是函數A
我們知道,函數是完成某個特定功能的代碼集合,在函數執行的過程中,一般是不能去干預他的行為的
當函數被設計成帶有回調功能時,我們就有可能在函數的執行過程中,通過回調函數去干預他。例如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
function
foo(
$n
,
$f
=
''
) {
if
(
$n
< 1)
return
;
for
(
$i
=0;
$i
<
$n
;
$i
++) {
echo
$f
?
$f
(
$i
) :
$i
;
}
}
//無回調時
foo(5);
//01234
//有回調時
function
f1(
$v
) {
return
$v
+
$v
;
}
foo(5,
'f1'
);
//02468
|
這里就是foo函數去調用(回調)了f1函數
代碼
1 <?php 2 function text1(){ 3 echo '這個是text1'; 4 5 } 6 function text2($username){ 7 echo '這個是text2'.'<br/>'.'這里是username的值:'.$username; 8 } 9 //回調函數:函數體內的名稱是我們傳入的參數(); 10 function callBack($call,$str){ 11 $call($str); 12 } 13 //回調函數的使用就是傳入的參數是你想要回調的函數名稱 14 callBack('text2','小明'); 15 echo '<hr/>'; 16 call_user_func('text2','測試');
10、回調函數的函數名,和回調函數需要的參數值
16、有自己寫的回調函數和call_user_func兩種
回調函數,通過別的函數來調用這個函數,所以要傳給調用這個函數的那個函數這個函數的名字和需要的參數。