recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment renvoyer des informations au milieu d'appels en chaîne PHP

Comment obtenir des informations d'erreur en cas d'erreur dans l'appel de la chaîne PHP

Le message d'erreur ici n'est pas une simple chaîne. Par exemple, pendant le processus d'appel en chaîne, une certaine fonction peut devoir renvoyer un tableau lorsqu'elle ne remplit pas une certaine condition et signaler directement une erreur, indiquant que le tableau ne peut pas appeler. la fonction suivante, mais comment peut-on le faire ? Et si nous ne continuons pas à l'appeler si une certaine fonction au milieu revient ?

学习ing学习ing2777 Il y a quelques jours1115

répondre à tous(3)je répondrai

  • 世界只因有你

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

    essayez d'attraper

    répondre
    0
  • 習慣沉默

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

    Est-ce comme ça ci-dessous ?

    <?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 : j'ai l'impression d'avoir écrit golang

    Jouez en ligne https://glot.io/snippets/ereygerdv3

    répondre
    0
  • 高洛峰

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

    throw new Exception('error');

    répondre
    0
  • Annulerrépondre