__construct(), __destruct(), __call(), __callstatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __tostring(), __invoke(), __set_state() 和 __clone()
class people
static function getin()
public function __clone()
}echo '';
$a=people::getin();
$b=people::getin();
$c=clone $b;
if($a===$b)echo 'ok
';else echo 'no
';if($c===$b)echo 'ok
';else echo 'no
';1當呼叫乙個乙個受保護或不存在的屬性時,__get()魔術方法自動呼叫.並且自動將屬性傳入魔術方法裡
此時修飾__get()方法的最好是public ,給外部預留介面用的
2當設定乙個不存在或受保護的屬性和值時,可以用__set($a,$b) 來攔截這一行為.$a代表屬性,$b代表屬性值
3 __isset();當用 isset()判斷物件不可見的屬性時,會觸發__isset()魔術方法.
function __isset($p)
此時用isset判斷受保護或不存在屬性是否存在,這時返回結果都為真
4__unset();//當用unset銷毀物件的不可見或受保護的屬性,或出發__unset(),並且會將屬性傳入__unset()
5 __call($a,$b)
當呼叫乙個不存在或收保護的方法時,__call方法自動呼叫,$a代表方法名,$b代表傳入的引數組成的陣列
6__callstatic($a,$b)
當呼叫乙個不存在或收保護的靜態方法時,__callstatic(方法自動呼叫,$a代表方法名,$b代表傳入的引數組成的陣列
PHP物件導向 魔術方法
get name 觸發時機 當呼叫乙個不訪問的成員屬性的時候,會自動觸發,可以利用這個方法來完成對不可呼叫的屬性進行呼叫,但是不能設定值 set name,value 觸發時機 當給乙個不可訪問的成員屬性賦值的時候,會自動觸發這個方法,可以利用這個方法完成對不可以訪問的屬性進行賦值 isset na...
php筆記(10) 物件導向之魔術方法
當物件被當作字串輸出時,呼叫該方法。class people p1 new people echo p1 當物件被當作方法呼叫時,會呼叫該方法 class people p1 new people p1 1 當訪問物件的方法不存在時,將會呼叫該方法 class people p1 new peopl...
php 物件導向之 魔術方法
php 魔術方法 php 模式方法 描述 需要在類中定義魔術方法 construct destruct tostring 當物件被當作string使用時,這個方法會被自動呼叫。如 public function tostring echo myobj invoke 當物件被當成方法是,這個方法會自動...