主页 M

PHP 特殊方法 __set()、__get()

2016-01-28 网页编程网 网页编程网
header("Content-type: text/html; charset=utf-8"); 
class person{
//成员属性
private $name;
private $age = 20;
//成员方法
function username($name){
return $this->name=$name;
}
//__set()方法用来设置私有属性
function __set($property_name, $value) { 
echo "在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值<br />";
$this->$property_name = $value; 
}
 
//__get()方法用来获取私有属性
function __get($property_name) {  
echo "在直接获取私有属性值的时候,自动调用了这个 __get() 方法<br />";
}
}
$obj= new person();
echo $obj->username("张三");
echo "<hr/>";
$obj->name = "李四";//在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值
echo "<hr/>";
echo $obj->age;//在直接获取私有属性值的时候,自动调用了这个 __get() 方法,不设置get特殊方法就会报下面的错
//echo $obj->age;//当成员属性或者方法前有private修饰,不能在类外访问。否则报错如下
/*
 Fatal error: Cannot access private property person::$age in D:\wamp\www\ajax\index.php on line 23
*/
阅读原文
阅读 4151
123 显示电脑版