位置: 编程技术 - 正文

详解php魔术方法(Magic methods)的使用方法(php常用的魔术方法有哪些)

编辑:rootadmin

推荐整理分享详解php魔术方法(Magic methods)的使用方法(php常用的魔术方法有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php 魔术方法,详解php魔术方法教程,详解php魔术方法教程,php魔术方法的讲解与使用,php魔术方法的讲解与使用,php 魔术方法,详解php魔术方法图解,详解php魔术方法视频,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:

__construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty()时调用 __unset(),当对不可访问属性调用unset()时被调用。 __sleep(),执行serialize()时,先会调用这个函数 __wakeup(),执行unserialize()时,先会调用这个函数 __toString(),类被当成字符串时的回应方法 __invoke(),调用函数的方式调用一个对象时的回应方法 __set_state(),调用var_export()导出类时,此静态方法会被调用。 __clone(),当对象复制完成时调用

__construct()和__destruct()

构造函数和析构函数应该不陌生,他们在对象创建和消亡时被调用。例如我们需要打开一个文件,在对象创建时打开,对象消亡时关闭

这两个方法在继承时可以扩展,例如:

__call()和__callStatic()

在对象中调用一个不可访问方法时会调用这两个方法,后者为静态方法。这两个方法我们在可变方法(Variable functions)调用中可能会用到。

__get(),__set(),__isset()和__unset()

当get/set一个类的成员变量时调用这两个函数。例如我们将对象变量保存在另外一个数组中,而不是对象本身的成员变量

__sleep()和__wakeup()

详解php魔术方法(Magic methods)的使用方法(php常用的魔术方法有哪些)

当我们在执行serialize()和unserialize()时,会先调用这两个函数。例如我们在序列化一个对象时,这个对象有一个数据库链接,想要在反序列化中恢复链接状态,则可以通过重构这两个函数来实现链接的恢复。例子如下:

__toString()

对象当成字符串时的回应方法。例如使用echo $obj;来输出一个对象

这个方法只能返回字符串,而且不可以在这个方法中抛出异常,否则会出现致命错误。

__invoke()

调用函数的方式调用一个对象时的回应方法。如下

__set_state()

调用var_export()导出类时,此静态方法会被调用。

__clone()

当对象复制完成时调用。例如在设计模式详解及PHP实现:单例模式一文中提到的单例模式实现方式,利用这个函数来防止对象被克隆。

魔术常量(Magic constants)

PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量。

__LINE__,文件中的当前行号 __FILE__,文件的完整路径和文件名 __DIR__,文件所在的目录 __FUNCTION__,函数名称 __CLASS__,类的名称 __TRAIT__,Trait的名字 __METHOD__,类的方法名 __NAMESPACE__,当前命名空间的名称

这些魔术常量常常被用于获得当前环境信息或者记录日志。

标签: php常用的魔术方法有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/290323.html 转载请保留说明!

上一篇:PHP浮点比较大小的方法(php字符串比较大小)

下一篇:php中的常用魔术方法汇总(php中的常用魔术有哪些)

  • 小规模纳税人的企业所得税税率
  • 一般纳税人企业所得税是多少
  • 小微企业的企业所得税税收优惠政策
  • 国际货物运输免征所得税
  • 小规模普票冲红原票要退回吗
  • 增值税期末余额在哪方
  • 未确认融资收益怎么算
  • 企业滞留发票的产生和处理
  • 产品报废怎么做账
  • 预收款未开票账务处理
  • 劳务公司核定征收怎么交税的
  • 交强险发票备注的车船税怎么报销
  • 工程完成投资入什么科目核算与怎么写其会计分录?
  • 非独立核算不用做核算吗
  • 失控发票进项转出成本不用转出
  • 财产租赁合同印花税计税依据及税率
  • 买酒专票怎么可以抵税
  • 职工福利费当年怎么扣
  • 外来经营活动需要提供什么资料?
  • 小微企业减半征收印花税代码
  • 个人所得税任职受雇信息有影响吗
  • 端午节给员工发福利说什么
  • linux虚拟机在哪里输入命令
  • window10过期
  • 购车的进项税怎么算
  • 用友软件查其他业务收入怎么查
  • 异地增值税预交可以网上缴纳吗
  • laravel5 使用try catch的实例详解
  • 一帆风顺的养殖土壤用什么土
  • 多台电脑如何共享一台惠普打印机
  • 金融公司呆账对当事人有什么影响
  • 预收账款的账务处理摘要
  • Chat GPT实用案例——VUE+Chat GPT实现聊天功能教程
  • 如何补办二手车牌照
  • php的什么函数可以判断变量是否存在
  • 简述gnss数据处理流程
  • 增值税逾期未申报怎么补申报
  • 扣缴单位无有效的税费种认定信息
  • 蔚蓝色的海王星是什么歌
  • smart局部变量
  • 冰川湾国家公园的冰川不止有白色一种
  • 工行退款短信图片
  • php接收post数据并查询数据库
  • vue3.0配置代理
  • 新闻管理系统类图
  • vue3动态路由权限
  • 大二一学期学分多少合适
  • php源码抓取工具
  • linux php redis扩展
  • 安装libtool
  • 一个简单的后台与数据库交互的登录与注册[sql注入处理、以及MD5加密]
  • SQL Server 跨库同步数据
  • 织梦的首页怎么换图片
  • 应交增值税账面余额与报税余额不符
  • 金蝶软件做账流程图片
  • 单位产品税金计算公式
  • 用发票做账是什么意思?
  • 个税专项附加扣除标准2023
  • 建筑工程维修费占总费用多少
  • 财务费用利息属于什么科目
  • 取得普通发票怎么做账
  • 最新版的电子发票没有章
  • 期末库存商品结转分录
  • 培训费发票必须开吗
  • 成本含税如何做会计分录
  • 会计去企业还是国企好
  • 无票收入怎么做账,要交税吗,填入增值税申报表
  • window系统安装流程
  • 开始菜单里设置在哪里
  • 电脑提示Windows照片查看器无法打开此图片
  • 光盘pe系统
  • 富泽园假日酒店
  • 如何关掉开机自检硬盘
  • win7系统怎样
  • win7系统没有光驱盘符
  • opengl帧缓冲
  • webrtc介绍
  • 有关于月亮的诗句
  • angular script
  • java script和java区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设