php魔术方法
<?php header("Content-type:text/html;charset=utf-8"); class Person { //下面是人的成员属性,都是封装的私有成员 private $name; //人的名子 private $sex; //人的性别 private $age; //人的年龄 //__get()方法用来获取私有属性 public function __get($property_name) { echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>"; if (isset($this->$property_name)) { return($this->$property_name); } else { return(NULL); } } //__set()方法用来设置私有属性 public function __set($property_name, $value) { echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>"; $this->$property_name = $value; } //__call调用未定义的方法执行 public function __call($name, $arguments) { echo "你所调用的函数:$name(参数:<br />"; var_dump($arguments); echo ")不存在!"; } //__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。 public function __callStatic($name, $arguments) { echo "你所调用的静态函数:$name(参数:<br />"; var_dump($arguments); echo ")不存在!"; } } $p1 = new Person(); //直接为私有属性赋值的操作,会自动调用__set()方法进行赋值 $p1->name = "张三"; $p1->sex = "男"; $p1->age = 20;