<?php /* * public private protected 这些变量可见性修饰符,只是控制变量的可访问范围,与继承无关,不管属性变量用哪个关键词修饰。它都会被继承 * 而且,一个属性不管采用了哪种修饰符,它都可以被 构造函数赋值 * */ 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();
php oop3乱七八糟的
2020-01-14 12:31:45
浏览数 (2)