PHP 魔术方法 __get __set (二)

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

php 魔术方法 __get __set (二)慢慢长寻夜,明月高空挂

__get()- 读取不可访问属性的值时,__get()会被调用

__set()- 在给不可访问属性赋值时,__set()会被调用

<?php/** * 清晰的认识__get() __set() */class Example { //公有的属性 public $public = 'pub' ; //受保护的 - 子类中该属性可用 PRotected $protected = 'pro'; //私有的 - 只能此类使用此属性 private $private = 'pri'; //当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法 public function __get($name){ return '调用__get()方法:'.$name; } //当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法 public function __set($name,$value){ echo "\nname:".$name.',value:'.$value."\n"; }}$example = new Example;echo '<pre>';echo $example->public."\n";echo $example->protected."\n";echo $example->private."\n";echo $example->other."\n";echo '<hr>';$example->public = 'lic'; //这个赋值成功所有没有显示$example->protected = 'tec';$example->private = 'vat';$example->other = 'er';echo '<br/>';echo '打印 public 属性:'.$example->public;

结果如下:

pub调用__get()方法:protected调用__get()方法:private调用__get()方法:othername:protected,value:tecname:private,value:vatname:other,value:er打印 public 属性:lic

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航