亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求助,請問關于回調函數和子函數有什么區別?

求助,請問關于回調函數和子函數有什么區別?

Git
30秒到達戰場 2021-07-14 15:11:49
看一本書的CODE, 反而將我搞糊涂了,回調函數和子函數怎么區分呢?搜了許多網頁,說道都是函數由你寫好,但是調用不是你控制的, 就是回調函數.那么,子函數不也是這樣嗎?例如:func a(){if(condition ca)call b();fi;call c();} func b() {...}; func c() {...};這樣 b(),c() 是回調函數還是子函數?謝謝,還是無法理解到底是誰調用的,這是作者的源碼,作者寫的是pre開頭的preInsert(),preUpdate()是回調函數。 save(),preInsert(),preUpdate()在同一個類里。public function save($useTransactions = true){$update = $this->isSaved();if ($useTransactions)$this->_db->beginTransaction();if ($update)$commit = $this->preUpdate();else$commit = $this->preInsert();if (!$commit) {if ($useTransactions)$this->_db->rollback();return false;}public function isSaved(){return $this->getId() > 0;}public function getId(){return (int) $this->_id;} 那么原因是因為pre的調用依賴于isSaved()的結果嗎?所以不是CODER控制調用的?
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

是什么看誰調用的,你的b和c都是a調用的,那么a是不是你寫的?
舉個有點實際意義的例子,比如你寫的界面有個按鈕,你把點擊按鈕后要執行的東西寫成了一個函數a,那么你只是寫了個函數,你從來沒有調用過對么?當你點下按鈕時,系統自己去調你寫的那個函數,那么這個函數的調用就不是你控制的。又比如,你在這個事件觸發的函數a里調用了另一個函數b,那么那個函數b就是你自己調用的,就是你能夠控制的調用。
===========================================================
調用的控制和“pre的調用依賴于isSaved()的結果”應該是沒什么關系吧。你的例子是不是這個意思,save函數是已經有的,是別人幫你寫好了的,這個函數調用了pre,而pre是要你自己寫的,那么這個pre就是你來實現,但是你從來不自己調用,而是別人調用。
其實么,這兩個概念不是完全對立的。既然是被調用,那我覺得也可以稱作是子函數吧。這種概念問題不用去糾結的啦

查看完整回答
反對 回復 2021-07-18
  • 1 回答
  • 0 關注
  • 397 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號