首页 > 代码库 > PHP 魔术方法 __get __set (二)
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
PHP 魔术方法 __get __set (二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。