php重载求圆锥体积,php方法的重载__get()、__set()、 __isset()、 __unset()

1、私有属性或受保护的属性无法直接访问

5dc59ea924c6f68643b570303ad56468.png

2、__get()方法,通过这个方法,就可以直接调用

8c602d08f3e4e52669f5703de65f24f0.png

3、__set 方法:给已经存在的属性赋值,或添加新的属性

10cfd7328150236efb6120810fef3d06.png

1ac42325c55346be3cad984a386fc1f0.png

255d153713d3412f42c11a4e55b5ce7f.png

3、重载 属性的权限设置

a63683c91581b19c5d347c98e675760c.png

636551107b602a5c9f4cd2f225d678c5.png

attr_chongzai.php

<?phpnamespace _1102;class ClassName  {private $name;private $age;protected $girl_friend;public function __construct($name,$age){$this->name= $name;$this->age= $age;}//属性重载的方法//__get(),相当于一个自动方法,让用户访问 私有或受保护的 属性public function __get($name){return $this->$name;}//__set重载对属性赋值// __set($name,$value)public function __set($p_name,$p_value){// $this->$p_name=$p_value;if($p_name=='what'){return $this->name=="老余" ? $this->$p_name='you can change your girl_friend'.$p_value :$this->$p_name="no power";}else{$this->$p_name=$p_value;}}public function __isset($name)//检测是否存在某个属性{return isset($this->$name);}public function __unset($name)//销毁存在的某个属性{unset($this->$name);}

}$obj= new ClassName('老余',"19.2");$obj->what="另一个";echo $obj->what;//调用的属性what和值老余都相等echo "


";

$obj1= new ClassName('老余2',"19.2");$obj1->what="另一个";echo $obj1->what;//调用的属性相等但值不等echo "


";

$obj2= new ClassName('老余3',"19.2");$obj2->what1="what1";echo $obj2->what1;//调用的属性和值都不等echo "


";

$obj->girl_friend='你懂的';//这里相当于给girl_firend赋值   girl_friend = __set函数的 $P_name//'你懂的'  =  __set函数的 $P_valueecho $obj->girl_friend;echo "


";$obj->firt_girl='你不懂';//新添加一个属性echo $obj->firt_girl;echo "
";

echo "


";echo isset($obj->firt_girl) ? "yes":"no";//存在显示yesecho "
";echo isset($obj->name1) ? "yes":"no";//不存在显示NOecho "
";echo $obj->age;//原有属性unset($obj->age);//销毁某个属性echo $obj->age;//查看报错echo $obj->name;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值