<?php
class Person{
public $name,$age,$sex;
private $card,$money;
public function __construct($name,$age,$sex,$card,$money){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
$this->card=$card;
$this->money=$money;
}
public function __destruct(){
//before unset this object,do some thing
echo 'object had unseted';
}
public function echo_money(){
echo 'money';
return $this->money;
}
public function __get($attr){
echo '当在对象外部直接访问,没有权限访问的属性时,这个方法被会自动执行';
echo '<br/>'.$this->name;
}
public function __set($attr,$val){
echo '当在外部给一个对象的某个不可以外部操作的属性赋值时,这个方法,自动被执行';
echo '一般来说,不应该通过这个方法给外部没有权限的访问的属性赋值';
}
public function __isset($attr){
echo '当用户在外部使用 isset() 来检测对象的某个不可以外部直接访问的属性是否存在时,这个方法会被自动调用';
}
public function __unset($attr){
echo '当用户在外部使用 unset() 对一个外部没有权限访问的属性进行毁销操作时,这个方法被 自动调用';
}
public function __call($method,$arg){
// 当调用不存在的行为时,这个会被自动执行
echo 'no had this method';
}
}
$hwp=new Person('hwp',30,'man',955888040,100);
//echo $hwp->name;
//echo $hwp->echo_money().'<br/>';
//$hwp->say();
echo '<br/>';
$hwp->money;
echo '<br/>';
echo $hwp->age;
$hwp->name='huangwenping';
echo $hwp->name;
$hwp->money=500000;
echo '<hr/>';
isset($hwp->name);
isset($hwp->money);
echo '<hr/>';
unset($hwp->name);
unset($hwp->money);
unset($hwp);
class SuperPerson extends Person {
public function __construct($name,$age,$sex,$card,$money,$height){
parent::__construct($name,$age,$sex,$care,$money);
$this->height=$height;
}
public function echo_money(){
parent::echo_money();
echo '<br/>';
echo '这个方法继承自父类,同时也在子类里覆盖了父类的方法';
}
}
$oH=new SuperPerson('huangwenping',30,'man',9558,200000,173);
$oH->echo_money();