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写的图片蜘蛛人代码
Aug 27 Python
Python常用模块介绍
Nov 21 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
python用700行代码实现http客户端
Jan 14 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
用PHP发电子邮件
2006/10/09 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
jquery处理json对象
2014/11/03 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
总结js函数相关知识点
2018/02/27 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
nohup的用法
2012/11/26 面试题
什么是lambda函数
2013/09/17 面试题
印刷工程专业应届生求职信
2013/09/29 职场文书
大学学生个人总结
2015/02/15 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
二年级作文之动物作文
2019/11/13 职场文书
Python 多线程处理任务实例
2021/11/07 Python
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
基于PyQt5制作一个群发邮件工具
2022/04/08 Python