2014-10-22 51 views
0

因此我對OOP PHP很新穎。 我試圖去感受它, 我正在makeing有2個功能無法將字符串轉換爲變量

一個用於汽車的速度的簡單類(他嘗試的TE看到,如果速度是一個很好的值)

和一個對於汽車的顏色(檢查是否顏色vailid)

錯誤,我得到:

Catchable fatal error: Object of class Auto could not be converted to string in E:\Site peter+usbweb\root\stage\oef\Auto.php on line 44

這裏是我的代碼:

<?php 

class Auto { 


    public $mKleur = ""; 
    public $mSpeed = ""; 

    public function speed ($var){ 
     if(is_numeric($var)){ 
      if($var < 0 OR $var == 0) 
      { 

       $this->mSpeed = ("$var kmpu rijd die waggie niet eens?!"); 
      } 
      elseif ($var > 206 OR $var == 206) 
      { 
       $$this->mSpeed = ("$var kmpu haalt de auto niet!"); 
      } 
      elseif($var > 0 AND $var < 206) 
      { 
        $$this->mSpeed = ("de auto reed met $var kmpu langs!"); 
      } 
     } 
      else 
      { 
       $$this->mSpeed = (" $var dat niet eens een getal...."); 
      } 

     } 






    private $sKleur = ""; 

    public function __set($sAttribuut, $sValue){ 
     switch($sAttribuut){ 
      case 'sKleur': 
       $aValideKleuren = array('groen', 'rood', 'blauw', 'paars', 'geel', 'wit', 'zwart','grijs','oranje');  
       if(!in_array(strtolower($sValue), $aValideKleuren)){ 
        $$this->mKleur = ("Kleur niet bekend: $sValue"); 

       } 
       else{ 
        $$this->mKleur = ("kleur is bekent namelijk: $sValue"); 
       } 
       $this->sKleur = $sValue; 
      break; 
      default: 
      break; 
     } 
    } 

    public function __get($sAttribuut){ 
     if(isset($this->$sAttribuut)){ 
      return $this->$sAttribuut; 
     } 

    } 
    public function kk() 
     { 
     $message = array('gSpeed' => $this->mSpeed, 'gKleur' => $this->mKleur); 
     return($message); 
     } 



} 
?> 

它確實工作,如果我使用回聲但我不能得到它返回值的

任何人都知道爲什麼?

+1

不應該總是隻有$ this而不是$$ this嗎? – Niko 2014-10-22 07:15:13

回答

0

您有錯誤。在「this」之前放置$ $。將$$改爲$ this

+0

仍然給出同樣的錯誤,我也嘗試在所有人上使用strval() – dark4ever17 2014-10-22 07:15:31

+0

你可以更新上面的代碼,以便我可以看到我們現在在哪裏?因爲有$ $$這個,而不是$這真的分心 – 2014-10-22 07:17:24

+0

我一直在爲那個3小時的... ...非常感謝它現在的作品現在生病在幾分鐘內接受anser,但謝謝 – dark4ever17 2014-10-22 07:19:18