PHP回呼函數到底是個啥,該怎麼解決

來源:互聯網
上載者:User
PHP回呼函數到底是個啥
百度了一下,很多關於回調都說是用函數指標回調,然後一步一步的講,最後歸結到了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
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.