PHP魔术方法__ISSET、__UNSET使用实例


Posted in Python onNovember 25, 2014

__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()方法查看属性名为 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

Python 相关文章推荐
Python 使用with上下文实现计时功能
Mar 09 Python
20行python代码实现人脸识别
May 05 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
python topk()函数求最大和最小值实例
Apr 02 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
用Python 执行cmd命令
Dec 18 Python
Python 里最强的地图绘制神器
Mar 01 Python
Python利用zhdate模块实现农历日期处理
Mar 31 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 #Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 #Python
Python标准库之循环器(itertools)介绍
Nov 25 #Python
Python标准库之sqlite3使用实例
Nov 25 #Python
Python标准库内置函数complex介绍
Nov 25 #Python
Python XML RPC服务器端和客户端实例
Nov 22 #Python
Python实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 #Python
You might like
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
jquery选择器简述
2015/08/31 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
webpack配置sass模块的加载的方法
2017/07/30 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python中几种导入模块的方式总结
2017/04/27 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python多进程并行代码实例
2019/09/30 Python
Python实现不规则图形填充的思路
2020/02/02 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
酒店开业庆典策划方案
2014/05/28 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
检讨书格式
2015/05/07 职场文书
未婚证明范本
2015/06/15 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Python函数式编程中itertools模块详解
2021/09/15 Python
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技