<?php class Person{ var $Name; var $age; var $Sex; function say() { echo "我的名字:".$this->Name." 性别:".$this->Sex." 年龄:".$this->age; } function walk() { echo $this->Name."在散步!";} } $p=new Person(); $p1=new Person(); $p->Name="simon"; $p->age=21; $p->Sex="男"; $p1->Name="diliya"; $p1->age=20; $p1->Sex="女"; echo $p->Name."  "; echo $p->age."  "; echo $p->Sex; $p->say(); $p->walk(); echo $p1->Name." "; echo $p1->age." "; echo $p1->Sex." "; $p1->say(); $p1->walk(); var_dump($p); var_dump($p1); //析构函数 在对象销毁前调用 class Ren{ private $Name; private $age; private $Sex; function say() { echo "我的名字:".$this->Name." 性别:".$this->Sex." 年龄:".$this->age; } function walk() { echo $this->Name."在散步!";} function __destruct() { echo "该对象销毁了"; } function Setage($a)//给age赋值 {If($a>=20&&$a<=50) $this->age=$a;} function Getage() //取age的值 { return $this->age;} function __set($Name,$value)//对类里边的私有成员进行赋值的魔术方法 { if($Name=="age") {if($value>20&&$value<50) { $this->$Name=$value; } } else{ $this->$Name=$value;} } function __get($Name) //对类里边的私有成员进行取值的魔术方法 { return $this->$Name; } } $r=new Ren(); $r->Setage(30); $r->Name="李四";//只要是执行该语句,会自动调用__set方法, $r->Sex="女"; echo $r->Sex; var_dump($r); //面向对象三大特性 //封装 //目的:让类更加安全,不让外界直接访问类里面的成员变量 //做法:1.把成员变量做成私有的 //2.做一个方法来实现变量的取值或赋值 //使用类里边提供的魔术方法也可以实现对私有成员的操作 //__set()特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数来调用__set()方法 //__get()特点:会自动执行,会把取值语句中的变量名作为参数调用__get() //继承 //多态 ?>