標籤:style blog io color 使用 sp on div log
慢慢長尋夜,明月高空掛
__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 (二)