关于__set的问题
<br />class aa{<br /> f<a>@本文9来源gao($daima.com搞@代@#码8网^</a><strong>搞代gaodaima码</strong>unction __set($pro, $v){<br /> echo "a\n";<br /> $this->pro=$v;<br /> echo "$v\n";<br /> }<br />}<br /><br />$a=new aa;<br />$a->b=1;<br />
输出是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;
就只进入一次了