Bagaimana untuk mengembalikan maklumat di tengah-tengah panggilan berantai PHP
学习ing
学习ing 2017-07-05 10:46:11
0
3
1093

Bagaimana untuk mendapatkan maklumat ralat apabila terdapat ralat dalam panggilan berantai PHP

Mesej ralat di sini bukan rentetan mudah Contohnya, semasa proses panggilan berantai, fungsi tertentu mungkin perlu mengembalikan tatasusunan apabila ia tidak memenuhi syarat tertentu, dan secara langsung melaporkan ralat, mengatakan bahawa tatasusunan tidak boleh memanggil. fungsi seterusnya, tetapi bagaimana ia boleh dilakukan jika kita tidak terus memanggilnya jika fungsi tertentu di tengah kembali?

学习ing
学习ing

membalas semua(3)
世界只因有你

cuba tangkap

習慣沉默

Adakah seperti di bawah ini?

<?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: Saya rasa saya menulis perasaan golang

Main dalam talian https://glot.io/snippets/ereygerdv3

小葫芦

throw new Exception('error');

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan