百度了一下,很多關於回調都說是用函數指標回調,然後一步一步的講,最後歸結到了C語言了,無語!難道這個回調就這樣難理解?
我的理解回調,關鍵是這個回,什麼呢回呢?有些人理解這個回就是函數內部再調用一個函數,我認為不是這樣,而是自己調用自己,就象數學邏輯中的迴圈證明一樣,比如
條件…………求證:a=b;
有時我們會犯這樣的求證錯誤:因為b=a,所以a=b,相信被個人都犯過類似的錯誤
而回呼函數我的理解類似這樣,
function fn($a){
$b=m;
$c=$b+fn($b);
return;
}
也不知我的理解對嗎?
回複討論(解決方案)
你的理解是錯誤的!
自己調用自己 稱之為“遞迴”,而不是回調
你也知道回調的關鍵是這個回
既然是回,那麼就有一個誰是主體的問題,因為回調是往回調用的意思
我調用了函數A,而函數A在執行過程中調用了我提供的函數B,這個函數B就稱為函數A的回呼函數
顯然主體是函數A
我們知道,函數是完成某個特定功能的代碼集合,在函數執行的過程中,一般是不能去幹預他的行為的
當函數被設計成帶有回調功能時,我們就有可能在函數的執行過程中,通過回呼函數去幹預他。例如
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
你的理解是錯誤的!
自己調用自己 稱之為“遞迴”,而不是回調
你也知道回調的關鍵是這個回
既然是回,那麼就有一個誰是主體的問題,因為回調是往回調用的意思
我調用了函數A,而函數A在執行過程中調用了我提供的函數B,這個函數B就稱為函數A的回呼函數
顯然主體是函數A
我們知道,函數是完成某個特定功能的代碼集合,在函數執行的過程中,一般是不能去幹預他的行為的
當函數被設計成帶有回調功能時,我們就有可能在函數的執行過程中,通過回呼函數去幹預他。例如
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
請問版主 這裡面的f1函數 為什麼可以不傳參數 就可以調用
還有這個函數對第一個函數有什麼作用呢