当前位置:首页 > PHP教程 > php应用 > 列表

PHP魔术方法__GET、__SET使用实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-30 15:39:08 浏览: 评论:0 

这篇文章主要介绍了PHP魔术方法__GET、__SET使用实例,本文在代码中做了详细的注释,需要的朋友可以参考下

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

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

代码如下:

  1. <?php 
  2. /** 
  3.  * 清晰的认识__get() __set() 
  4.  */ 
  5. class Example { 
  6.     
  7.     //公有的属性 
  8.     public $public = 'pub' ; 
  9.     //受保护的 - 子类中该属性可用 
  10.     protected $protected = 'pro'
  11.     //私有的 - 只能此类使用此属性 
  12.     private $private = 'pri'
  13.     
  14.     //当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法 
  15.     public function __get($name){ 
  16.         return '调用__get()方法:'.$name
  17.     } 
  18.     
  19.     //当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法 
  20.     public function __set($name,$value){ 
  21.         echo "\nname:".$name.',value:'.$value."\n"
  22.     } 
  23.  
  24. $example = new Example; 
  25. echo '<pre>'
  26. echo $example->public."\n"
  27. echo $example->protected."\n"
  28. echo $example->private."\n"
  29. echo $example->other."\n"
  30. echo '<hr>'
  31. $example->public = 'lic';   //这个赋值成功所有没有显示 
  32. $example->protected = 'tec'
  33. $example->private = 'vat'
  34. $example->other = 'er'
  35. echo '<br/>'
  36. echo '打印 public 属性:'.$example->public

结果如下:

pub

调用__get()方法:protected

调用__get()方法:private

调用__get()方法:other

name:protected,value:tec

name:private,value:vat

name:other,value:er

打印 public 属性:lic

Tags: __GET __SET

分享到: