推薦學習:《》
php中魔術方法詳解,在php中有一類方法,很奇怪常,那就是隻要滿足一定條件,就會自己執行,那就是php中的魔術方法,
<?php class autofelix { public function __construct() { echo '我是類autofelix'; } } new autofelix(); //即可輸出:我是類autofelix
<?php class autofelix { public function __destruct() { echo '我準備銷燬你了'; } } $a = new autofelix(); unset($a); //即可輸出:我準備銷燬你了
<?php class autofelix { public function __clone() { echo '我克隆了你'; } } $a = new autofelix(); clone $a; //即可輸出:我克隆了你
<?php class autofelix { private function say() { echo 'hello, 我是autofelix'; } public function __call($name, $arguments) { echo '你無權呼叫' . $name . '方法'; die; } } $a = new autofelix(); $a->say(); //按理說應該報錯 //即可輸出:你無權呼叫say方法
<?php class autofelix { private static function say() { echo 'hello, 我是autofelix'; } public function __callStatic($name, $arguments) { echo '你無權呼叫' . $name . '方法'; die; } } $a = new autofelix(); $a::say(); //按理說應該報錯 //即可輸出:你無權呼叫say方法
<?php class autofelix { public function __debugInfo() { echo '你看不到我任何資訊的~'; } } var_dump(new autofelix()); //即可輸出:你看不到我任何資訊的~
<?php class autofelix { private $name = 'autofelix'; public function __get($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什麼東西都能存取的~'; } } } $a = new autofelix(); $a->name; //即可輸出:autofelix
<?php class autofelix { private $name = 'autofelix'; public function __isset($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什麼東西都能存取的~'; } } } $a = new autofelix(); isset($a->name); //結果: autofelix
<?php class autofelix { public function __set($name, $value) { echo '你想給' . $name . '賦值' . $value; } } $a = new autofelix(); $a->name = 'autofelix'; //結果: 你想給name賦值autofelix;
<?php class autofelix { public function __invoke() { echo '你還想呼叫我?'; } } $a = new autofelix(); //物件直接當函數呼叫 $a(); //結果: 你還想呼叫我?
<?php class autofelix { public function __sleep() { echo '弄啥嘞~'; } } $a = new autofelix(); serialize($a); //結果: 弄啥嘞~
<?php class autofelix { public function __toString() { return '我是你得不到的物件...'; } } $a = new autofelix(); echo $a; //結果: 我是你得不到的物件...
<?php class autofelix { private $name = 'autofelix'; public function __unset($name) { echo '想刪我? 你也配?'; } } $a = new autofelix(); unset($a->name); //結果: 想刪我? 你也配?
<?php class autofelix { public function __wakeup() { echo '又想弄啥嘞~'; } } $a = new autofelix(); unserialize($a); //結果: 又想弄啥嘞~
推薦學習:《》
以上就是歸納整理php中的魔術方法的詳細內容,更多請關注TW511.COM其它相關文章!