为何引用类中的属性时,前面不能加$呢?加上反而引用不到?但是属性本身就是$打头的呀?<?php
class myclass
{
public $aaa="属性aaa的值"; function __get($name)
{
echo "get被调用<br/>";
return $this->$name;
} function __set($name,$value)
{
$this->$name=$value;
echo "set被调用<br/>";
}
}$a=new myclass;echo $a->aaa . "<br/>";//以下这句调用为何报错呢?
echo $a->$aaa . "<br/>";
?>

解决方案 »

  1.   

    这么给你说吧
    $a->$aaa 会去找主程序里面的$aaa变量,找到然后找到$aaa里的值去调用比如说你在$a = new myclass;
    后面加一句 $aaa = 'aaa';
    执行$a->$aaa就能调用成功了如果你的$aaa='b'
    $a->$aaa
    程序就会去找$aaa->b
      

  2.   

    echo $a->$aaa . "<br/>";
    报错是因为你的程序里面没有$aaa变量
    PHP这样定义是为了更灵活,比如你要为用户增加一些分数,而用户一般会有不同的分数  人民币, 积分, 等然后就直接for就行了
    $a->$item[$i]+=$val[$i];
      

  3.   


    //以下这句调用为何报错呢?,这句等于 $a->属性aaa的值
    echo $a->$aaa . "<br/>";