PHP类的封装
通过__get()
和__set()
访问私有属性
PHP5中预定义了__get()
和__set()
方法,其中:
__get()
方法用于获取私有成员属性的属性值__set()
方法用于为私有成员属性赋值
这两个方法获取私有属性和设置私有属性时都是自动调用的。
<?php
header("Content-type:text/html;charset=utf-8");
//page:108
class Person{
private $name;
private $age;
//定义__get()方法用于获取Person的属性
public function __get($property_name){
echo "自动调用__get()方法获取属性值<br>";
if(isset($this->$property_name)){
return($this->$property_name);
}else{
return(NULL);
}
}
//定义__set方法用于设置Person的属性
public function __set($property_name, $value){
echo "自动调用__set()方法获取属性值<br>";
$this->$property_name = $value;
}
}
$p1 = new Person();
$p1->name = 'Tom';
$p1->age = 10;
echo "姓名:".$p1->name."<br>";
echo "年龄:".$p1->age;
运行结果:
自动调用__set()方法获取属性值
自动调用__set()方法获取属性值
自动调用__get()方法获取属性值
姓名:Tom
自动调用__get()方法获取属性值
年龄:10