搜尋

首頁  >  問答  >  主體

PHP鍊式呼叫如何在中間回傳訊息

PHP鍊式呼叫如何在中間錯誤的時候拿到錯誤訊息

這裡的錯誤訊息不是簡單的字串,例如鍊式呼叫過程中可能某一個函數在不滿足某個條件的時候,需要返回一個數組,直接報錯,說數組無法調用下一個函數,但是如何能做到在中間某個函數回傳的條件下不再往後繼續呼叫呢?

学习ing学习ing2707 天前1070

全部回覆(3)我來回復

  • 世界只因有你

    世界只因有你2017-07-05 10:48:11

    嘗試捕捉

    回覆
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:48:11

    是不是下面的這個樣子呢?

    <?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 的感覺

    在線把玩 https://glot.io/snippets/ereygerdv3

    回覆
    0
  • 高洛峰

    高洛峰2017-07-05 10:48:11

    拋出新的異常('錯誤');

    回覆
    0
  • 取消回覆