PHP的类的private变量调用问题?
类中的变量设置成private,只能在类的内部使用。而函数__get();__set()是在创建对象时自动调用为对象的public变量声明的。为什么对private变量也...
类中的变量设置成private,只能在类的内部使用。而函数__get(); __set()是在创建对象时自动调用为对象的public变量声明的。为什么对private变量也能进行赋值调用了???
<?php
class Person
{
private $name; //人的名子
private $sex; //人的性别
private $age; //人的年龄
public function __get($property_name)
{
echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
if(isset($this->$property_name)){
return($this->$property_name);
}else{
return(NULL);
}
}
public function __set($property_name, $value)
{
echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
$this->$property_name = $value;
}
}
$p1=new Person();
$p1->name="张三";
$p1->sex="男";
$p1->age=20;
echo "姓名:".$p1->name."<br>";
echo "性别:".$p1->sex."<br>";
echo "年龄:".$p1->age."<br>";
?> 展开
<?php
class Person
{
private $name; //人的名子
private $sex; //人的性别
private $age; //人的年龄
public function __get($property_name)
{
echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
if(isset($this->$property_name)){
return($this->$property_name);
}else{
return(NULL);
}
}
public function __set($property_name, $value)
{
echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
$this->$property_name = $value;
}
}
$p1=new Person();
$p1->name="张三";
$p1->sex="男";
$p1->age=20;
echo "姓名:".$p1->name."<br>";
echo "性别:".$p1->sex."<br>";
echo "年龄:".$p1->age."<br>";
?> 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询