<?php header("Content-type:text/html; charset:utf-8"); //PHP面向对象__get(), __set()的用法 /*一般来说,总是把类的属性定义为private,这更符合现实的逻辑。但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性,以及检查属性的“__isset()”和删除属性的方法“__unset()”。*/ class Person { private $name; private $sex; private $age; private function __get($property_name) { echo "直接获取私有属性的时候,自动调用__get<BR>"; if(isset($this->$property_name)){ return ($this->$property_name); }else return (null); } private function __set($proeprty, $val) { echo "直接设置私有属性的时候,自动调用__set<BR>"; $this->$proeprty = $val; } private function __isset($name) { echo "isset()函数测试私有成员时,自动调用<BR>"; return isset($this->$name); } private function __unset($name) { echo "unset()删除私有成员时自动调用<BR>"; unset($this->$name); } } $p1 = new Person(); $p1->name = "xlc"; $p1->sex = '男'; $p1->age = 22; echo $p1->name; echo $p1->sex; echo $p1->age; isset($p1->name); unset($p1->name); ?>