php物件導向筆記5 魔術方法

2021-07-22 15:20:19 字數 1004 閱讀 7530

__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 當物件被當成方法是,這個方法會自動...