2014-10-22 6 views
0

, поэтому я довольно новичок в OOP PHP. я пытаюсь получить чувство для этого, я она позволяет простой класс с 2-мя функциямиcant получить строку в переменную

один для скорости автомобиля (он попробовать-х тэ увидеть, если скорость является хорошим значением)

и один для цвета автомобиля (проверьте цвет 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); 
     } 



} 
?> 

он работает, если я использую эхо, но я не могу получить его të вернуть значение в

Кто-нибудь знает почему?

+1

Разве это не всегда только $ this вместо $$ this? – Niko

ответ

0

У вас есть ошибка. Вы добавляете double $ до «this». Измените $$ это на $ this

+0

все еще дает ту же ошибку, я также попытался использовать strval() для всех из них – dark4ever17

+0

Можете ли вы обновить свой код выше, чтобы я мог видеть, где мы сейчас находимся? Потому что имея $$ это вместо $, это действительно отвлекает –

+0

, я смотрел на это в течение 3-х часов ... спасибо, что он работает, теперь плохо согласен с anser в течение нескольких минут, но спасибо – dark4ever17

Смежные вопросы