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

WBOY
發布: 2016-08-08 09:06:37
原創
1166 人瀏覽過

程式碼如下:
我使用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>
登入後複製
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板