为何引用类中的属性时,前面不能加$呢?加上反而引用不到?但是属性本身就是$打头的呀?<?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/>";
?>
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/>";
?>
$a->$aaa 会去找主程序里面的$aaa变量,找到然后找到$aaa里的值去调用比如说你在$a = new myclass;
后面加一句 $aaa = 'aaa';
执行$a->$aaa就能调用成功了如果你的$aaa='b'
$a->$aaa
程序就会去找$aaa->b
报错是因为你的程序里面没有$aaa变量
PHP这样定义是为了更灵活,比如你要为用户增加一些分数,而用户一般会有不同的分数 人民币, 积分, 等然后就直接for就行了
$a->$item[$i]+=$val[$i];
//以下这句调用为何报错呢?,这句等于 $a->属性aaa的值
echo $a->$aaa . "<br/>";