热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php魔术方法__sleep__wakeup__toString__debuginfo

:本篇文章主要介绍了php魔术方法__sleep__wakeup__toString__debuginfo,对于PHP教程有兴趣的同学可以参考一下。
__sleep():

使用serialize()序列化的时候,会检测类中是否有__sleep()魔术方法,有的话会先调用__sleep(),返回一个包含对象中所有需要序列化的变量名称的数组

classtest{public$name='demon';

    private$age='19';

    publicfunction__sleep(){return ['name'];
    }  
}

$test = new test();
echo serialize($test);
//输出结果:O:4:"test":1:{s:4:"name";s:5:"demon";}

__wakeup()

使用serialize()序列化的时候,会检测类中是否有__wakeup()魔术方法,有的话会先调用__wakeup(),执行一些初始化操作

classtest{public$name='demon';

    private$age='19';

    publicfunctionsay(){echo"反序列化";
    }

    publicfunction__wakeup(){$this->say();
    }   
}

$test = new test();
unserialize(serialize($test));
//输出结果:反序列化

__toString()

__toString()用于一个类被当做字符串使用时的回应,只能返回一个字符串

classtest{public$name='demon';

    private$age='19';

    publicfunction__toString(){return'test';
    } 
}

$test = new test();
echo$test;
//输出结果:test

__debuginfo()

__debuginfo() 是php5.6增加的特性,var_dump()一个类时的回应,返回一个包含对象属性的数组

classtest{public$name='demon';

    private$age='19';

    publicfunction__debuginfo(){return ['name'];
    }

}

$test = new test();
var_dump($test);
//输出结果:object(test)#1 (1) { [0]=> string(4) "name" }

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了php 魔术方法 __sleep __wakeup __toString __debuginfo,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 推荐阅读
    • 音乐对决:深入解析《节奏大师》的魅力与玩法
      由腾讯开发的音乐节奏游戏《节奏大师》凭借其独特的魅力吸引了大量玩家。本文将详细介绍这款游戏的操作方式及为何能吸引众多玩家。 ... [详细]
    • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
    • 本文详细介绍了PHP中几个常用的数组回调函数,包括array_filter、array_map、array_walk和array_reduce。通过具体的语法、参数说明及示例,帮助开发者更好地理解和使用这些函数。 ... [详细]
    • 本文详细探讨了PHP中使用const和define定义常量的方法及其差异。了解这些区别有助于开发者根据具体需求选择合适的方式定义常量。 ... [详细]
    • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
    • 深入解析Java SE、Java EE和Java Web的核心知识体系
      通过一系列图表全面解析Java SE、Java EE与Java Web的核心知识体系,帮助开发者快速掌握这些关键技术领域的要点。 ... [详细]
    • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
    • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
    • 使用CorelDRAW X7轻松绘制卡通风格杯子教程
      本文将引导您通过CorelDRAW X7软件,利用贝塞尔工具和交互式填充功能,创作出一个既可爱又生动的卡通杯子。我们将详细介绍每个步骤,帮助您掌握绘制技巧。 ... [详细]
    • egg实现登录鉴权(七):权限管理
      权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
    • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
    • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
    • 本文深入解析宋代著名词人宋方君的作品《风流子》,通过细腻的译文和独到的赏析,带领读者走进词人的内心世界,感受其独特的艺术魅力。 ... [详细]
    • 本文将详细介绍如何在Adobe Illustrator中实现仅移动一个对象以完成对齐,同时确保另一个对象保持原位不变的方法。通过具体的操作步骤,帮助设计师们更加高效地完成设计任务。 ... [详细]
    • Python网络编程:深入探讨TCP粘包问题及解决方案
      本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
    author-avatar
    林台育怡婷雅雯
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有