PHP鍊式呼叫如何在中間錯誤的時候拿到錯誤訊息
這裡的錯誤訊息不是簡單的字串,例如鍊式呼叫過程中可能某一個函數在不滿足某個條件的時候,需要返回一個數組,直接報錯,說數組無法調用下一個函數,但是如何能做到在中間某個函數回傳的條件下不再往後繼續呼叫呢?
嘗試捕捉
是不是下面的這個樣子呢?
<?php class Demo { protected $result; protected $error = false; function funcA() { if (! $this->error) { //do xxx } return $this; } function funcB() { if (! $this->error) { //do xxx //模拟发生错误 $this->error = true; $this->result = ['Ops!', 'Something bad Happened!']; } return $this; } function funcC() { if (! $this->error) { //do xxx } return $this; } function GetResult() { return [$this->result, $this->error]; } } $demo = new Demo(); list($result, $hasError) = $demo->funcA()->funcB()->funcC()->GetResult(); var_dump($result, $hasError);
PS: 感覺寫出了 golang 的感覺
golang
在線把玩 https://glot.io/snippets/ereygerdv3
拋出新的異常('錯誤');
嘗試捕捉
是不是下面的這個樣子呢?
在線把玩 https://glot.io/snippets/ereygerdv3
拋出新的異常('錯誤');