登录

PHP链式调用如何在中间返回信息

PHP链式调用如何在中间错误的时候拿到错误信息

这里的错误信息不是简单的字符串,比如链式调用过程中可能某一个函数在不满足某个条件的时候,需要返回一个数组,直接报错,说数组无法调用下一个函数,但是如何能做到在中间某个函数返回的条件下不再往后继续调用呢?

# PHP
学习ing 学习ing 2459 天前 906 次浏览

全部回复(3) 我要回复

  • 世界只因有你

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

    try catch

    回复
    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

    throw new \Exception('error');

    回复
    0
  • 取消 回复 发送