PHP 魔术方法:__isset和__unset
程序员文章站
2022-03-29 18:49:13
...
从php5以后的版本,类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法。
目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。
本文慢慢长寻夜,明月高空挂
__isset() - 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法
__unset() - 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法
public = 'pub'; $this->protected = 'pro'; $this->private = 'pri'; } public function __isset($var){ echo '这里通过__isset()方法查看属性名为 '.$var."\n"; } public function __unset($var){ echo '这里通过__unset()方法要销毁属性名为 '.$var."\n"; } } $exa = new Example; echo ''; var_dump(isset($exa->public)); echo "\n"; var_dump(isset($exa->protected)); echo "\n"; var_dump(isset($exa->private)); echo "\n"; var_dump(isset($exa->noVar)); echo "\n"; echo '
'; unset($exa->public); var_dump($exa); echo "\n"; unset($exa->protected); echo "\n"; unset($exa->private); echo "\n"; unset($exa->noVar); echo "\n";结果如下:
bool(true) 这里通过__isset()方法查看属性名为 protected bool(false) 这里通过__isset()方法查看属性名为 private bool(false) 这里通过__isset()方法查看属性名为 noVar bool(false) ------------------------------------------------------------------------------ object(Example)#1 (2) { ["protected:protected"]=> string(3) "pro" ["private:private"]=> string(3) "pri" } 这里通过__unset()方法要销毁属性名为 protected 这里通过__unset()方法要销毁属性名为 private 这里通过__unset()方法要销毁属性名为 noVar
以上就介绍了PHP 魔术方法:__isset和__unset,包括了PHP 魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
上一篇: 魔术方法___toString()实例详解(php面向对象高级教程)
下一篇: 学习设计模式