首頁  >  文章  >  後端開發  >  狀態模式,return 無回傳值的問題

狀態模式,return 無回傳值的問題

WBOY
WBOY原創
2016-08-08 09:06:371130瀏覽

程式碼如下:
我使用echo是有值的,為啥我使用return就取得不到值呢?

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

回覆內容:

程式碼如下:
我使用echo是有值的,為啥我使用return就取得不到值呢?

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

謝謝邀請!因為你實例化掉用了本身,本身就是return回傳而不是輸出之類的,所以不會出現值,這很正常!如果你直接echo掉用的就可以看到輸出值了。

<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>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn