PHP魔术方法__GET、__SET使用实例
__get()-读取不可访问属性的值时,__get()会被调用。
__set()-在给不可访问属性赋值时,__set()会被调用。
<?php
/** *清晰的认识__get()__set() */ classExample{ //公有的属性 public$public='pub'; //受保护的-子类中该属性可用 protected$protected='pro'; //私有的-只能此类使用此属性 private$private='pri'; //当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法 publicfunction__get($name){ return'调用__get()方法:'.$name; } //当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法 publicfunction__set($name,$value){ echo"\nname:".$name.',value:'.$value."\n"; } }
$example=newExample; 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;