首页 > 代码库 > PHP 魔术方法 __isset __unset (三)
PHP 魔术方法 __isset __unset (三)
慢慢长寻夜,明月高空挂
__isset() - 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法
__unset() - 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法
<?php /** * 针对类中的魔术方法 __isset() 和 __unset() 的例子 */class Example { public $public; protected $protected; private $private; public function __construct(){ $this->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 ‘<pre>‘;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 ‘<hr/>‘;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()方法查看属性名为 protectedbool(false)这里通过__isset()方法查看属性名为 privatebool(false)这里通过__isset()方法查看属性名为 noVarbool(false)------------------------------------------------------------------------------object(Example)#1 (2) { ["protected:protected"]=> string(3) "pro" ["private:private"]=> string(3) "pri"}这里通过__unset()方法要销毁属性名为 protected这里通过__unset()方法要销毁属性名为 private这里通过__unset()方法要销毁属性名为 noVar
PHP 魔术方法 __isset __unset (三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。