当前位置: 代码迷 >> PHP >> 关于_set的有关问题
  详细解决方案

关于_set的有关问题

热度:104   发布时间:2016-04-28 18:19:55.0
关于__set的问题

class aa{
function __set($pro, $v){
echo "a\n";
$this->pro=$v;
echo "$v\n";
}
}

$a=new aa;
$a->b=1;


输出是a a 1 1;

2个问题,为何输出2次;

为何是a a 1 1,而不是a 1 a 1;


------解决思路----------------------
你把 echo "a\n"; 改成 echo "$pro\n"; 就会看到
b     因为 b 属性不存在,所以进入了 __set 方法
pro 同样因为 pro 属性不存在,再次进入 __set 方法
1    进入两次,打印两次值就不足为奇了
1

当 $this->pro=$v;
改为 $this->$pro=$v;
就只进入一次了

  相关解决方案