首先,有個函數是這麼寫的。
<code>function exam(){ //从数据库获取数据。 $records = $aModel->where(['type' => 1])->get(); if(empty($records)) return false; $newRecord = $bModel->map(); foreach($records as $item){ $newRecord->name = $item->name; $newRecord->age = $item->age; try{ $bModel->insert($newRecord); } catch(\Exception $e){ \Log::catch($e); } } return true; } </code>
然後,這個函數是這麼呼叫的。
<code>if(true !== exam()){ echo "表更新失败"; return false; }</code>
請各位經驗豐富的phper看下,這其中有幾個地方看著挺彆扭的:
函數exam()中,return 的位置是否適當。
假如遇到函數中返回類型不確定,執行完成返回結果,執行失敗返回false這種情況下,調用的時候是否適合對結果進行類似 if(false === exam())
的判斷。
感覺在if判斷中執行函數,會使得程式碼的可讀性降低,不知是否有這樣的問題。
首先,有個函數是這麼寫的。
<code>function exam(){ //从数据库获取数据。 $records = $aModel->where(['type' => 1])->get(); if(empty($records)) return false; $newRecord = $bModel->map(); foreach($records as $item){ $newRecord->name = $item->name; $newRecord->age = $item->age; try{ $bModel->insert($newRecord); } catch(\Exception $e){ \Log::catch($e); } } return true; } </code>
然後,這個函數是這麼呼叫的。
<code>if(true !== exam()){ echo "表更新失败"; return false; }</code>
請各位經驗豐富的phper看下,這其中有幾個地方看著挺彆扭的:
函數exam()中,return 的位置是否適當。
假如遇到函數中返回類型不確定,執行完成返回結果,執行失敗返回false這種情況下,調用的時候是否適合對結果進行類似 if(false === exam())
的判斷。
感覺在if判斷中執行函數,會使得程式碼的可讀性降低,不知是否有這樣的問題。
exam()中的return 為什麼不在拋出異常的時候就直接return false?
一般返回類型如果是bool類型不建議加第三種類型,你說的那種方法可以判斷但是不建議
可讀性的問題不是因為在if裡,而是你的函數名稱有問題,如果要返回是bool型建議加個is來表示, 如:
<code class="php">if(false === isExam()){ echo "表更新失败"; return false; }</code>
推薦一本書可以看看:
https://book.douban.com/subje...