• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 魔术方法:__isset和__unset

php 搞代码 3年前 (2022-01-23) 17次浏览 已收录 0个评论

从php5以后的版本,类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法。

目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。

本文

慢慢长寻夜,明月高空挂

__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 class="prettyprint linenums">';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(<span>true</span><span>)这里通过__isset()方法查看属性名为 protectedbool(</span><span>false</span><span>)这里通过__isset()方法查看属性名为 privatebool(</span><span>false</span><span>)这里通过__isset()方法查看属性名为 noVarbool(</span><span>false</span><span>)------------------------------------------------------------------------------ </span><span>object</span>(Example)#<span>1</span> (<span>2</span><span>) {  [</span><span>"</span><span>protected:protected"]=></span> <span>string</span>(<span>3</span>) <span>"</span><span>pro"</span> [<span>"</span><span>private:private"]=></span> <span>string</span>(<span>3</span>) <span>"</span><span>pri"</span> <span>}这里通过__unset()方法要销毁属性名为 protected这里通过__unset()方法要销毁属性名为 private这里通过__unset()方法要销毁属性名为 noVar</span>

@本文来*源gaodai#ma#com搞*!代#%^码$网* 以上就介绍了PHP 魔术方法:__isset和__unset,包括了PHP 魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 魔术方法:__isset和__unset

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址