关于__set()的问题
PHP code1 | <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http:
|
Copy after login
上面的代码,__set()被莫名其妙执行了两次,请问这是为什么呢? 输出结果为:
CEO::__construct begin!
Employee::__set is called $proName==name, $value==Blus
Employee::__set is called $proName==xproName, $value==Blus
CEO::__construct end!
------解决方案--------------------__set( $property, $value ) : 给一个未定义的属性赋值时调用
你赋值了两次当然就执行两次了。
------解决方案--------------------第一次给未定义的类成员$name赋值: $this->name = $name; 调用一次
在调用重载方法__set的时候,第二次给未定义的类成员 $xproName赋值: $this->xproName = $value; 调用一次。
我想你的本意是这样:
PHP code1 2 3 4 5 6 | public function __set( $xproName , $value ) { echo '<p>Employee::__set is called $proName==' . $xproName . ', $value==' . $value . '</p>' ;
</div>
|
Copy after login