__set()修改私有变量的值

时间: 2009-04-20  分类: php+Mysql  收藏
__set($preName,$value)
前面的变量是被修改变量,$value是新值
<?php
class Person
{
private $name;
private $age;
function Person($name,$age)
{
$this->name=$name;
$this->age=$age;
}
private function __set($preName,$value)
/*__set()里面有两个变量,前面是名子,后面是值
*就如下面的代码:$p->name = '者王';
*目的是修改name的值,直接修改是不行的,通过__set()修改.
*把'name'和'age'依次传到$preName这里,
*把'者者者王'和'40'依次传到$value这里,
*通过__set(),name和age就地有新值,
*echo $value可以输入新修改的值
*第一次name传入$preName修改值的时候,
*$this->$preName = $value相当于$this->name = '者者者王';
*第二次age传入$preName修改值的时候
*$this->$preName = $value相当于$this->age = '40';
*也就是从内部把name和age的值修改了;
*/
{
echo $preName . '======' . $value .'<BR />';   //$preName依次显示传入的变量
//$value现在已经变成了新值
}
}
$p = new Person('王者',20);
$p->name = '者者者王'; //直接修改的话是不行的,因为是私有变量,所以通过__set修改
$p->age = 40;
?>
分享到:

评论

昵 称: