PHP回呼函數到底是個啥

來源:互聯網
上載者:User
百度了一下,很多關於回調都說是用函數指標回調,然後一步一步的講,最後歸結到了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函數 為什麼可以不傳參數 就可以調用
還有這個函數對第一個函數有什麼作用呢
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.