无法将字符串转换为变量

时间:2014-10-22 07:09:07

标签: php oop

所以我对OOP PHP很新。 我想要感受一下, 我正在制作一个包含2个函数的简单类

关于汽车的速度(他试着看看速度是否合适)

和一个用于汽车的颜色(检查颜色是否为空)

我得到的错误:

  

可捕获的致命错误:无法将类Auto的对象转换为E行中的字符串:第44行的网站peter + usbweb \ root \ stage \ oef \ Auto.php

这是我的代码:

  <?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);
        }



}   
?>

如果我使用回声它确实有效,但我无法得到它返回价值&#39; s

谁知道为什么?

1 个答案:

答案 0 :(得分:0)

你有一个错误。你把双倍的$放在&#34;这个&#34;。将$$改为$ this