cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengembalikan maklumat di tengah-tengah panggilan berantai PHP

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学习ing2705 hari yang lalu1065

membalas semua(3)saya akan balas

  • 世界只因有你

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

    cuba tangkap

    balas
    0
  • 習慣沉默

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

    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

    balas
    0
  • 高洛峰

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

    throw new Exception('error');

    balas
    0
  • Batalbalas