Heim >Backend-Entwicklung >PHP-Tutorial >Statusmodus, Rückgabe ohne Rückgabewertproblem

Statusmodus, Rückgabe ohne Rückgabewertproblem

WBOY
WBOYOriginal
2016-08-08 09:06:371198Durchsuche

Der Code lautet wie folgt:
Wenn ich echo verwende, hat er einen Wert. Warum kann ich den Wert nicht erhalten, wenn ich return verwende?

<code>class GoodNight implements IState  
{ 
    public function WriteCode(Work $w)  
    {  
        if($w->hour<22)  
        {  
           return Yii::t('yii','Good night'); 
        }else{  
            $w->SetState(new GoodAtNight());  
            $w->WriteCode();  
        }   
    }  
} </code>

Antwortinhalt:

Der Code lautet wie folgt:
Wenn ich echo verwende, hat er einen Wert. Warum kann ich den Wert nicht erhalten, wenn ich return verwende?

<code>class GoodNight implements IState  
{ 
    public function WriteCode(Work $w)  
    {  
        if($w->hour<22)  
        {  
           return Yii::t('yii','Good night'); 
        }else{  
            $w->SetState(new GoodAtNight());  
            $w->WriteCode();  
        }   
    }  
} </code>

Danke für die Einladung! Da Sie es instanziieren und verwenden, gibt es return anstelle der Ausgabe zurück, sodass der Wert nicht angezeigt wird, was normal ist! Wenn Sie den verwendeten direkt echo entfernen, können Sie den Ausgabewert sehen.

<code>class GoodNight implements IState  
{ 
    public function WriteCode(Work $w)  
    {  
        if($w->hour<22)  
        {  
           return Yii::t('yii','Good night'); 
        }else{  
            $w->SetState(new GoodAtNight());  
            echo $w->WriteCode();  // 在这里echo就有值了
        }   
    }  
} </code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn