位置: 编程技术 - 正文

详解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中的常用魔术有哪些)

  • 小规模30万免增值税1点怎么申报税款
  • 待解预算收入税务局退税如何做账
  • 税收滞纳金还会计算滞纳金吗
  • 利润税是多少个点
  • 增值税普通发票怎么开
  • 退回以前年度的增值税账务处理
  • 计提当月社保会计分录
  • 购买方怎么写分录
  • 出口不退税进项税如何处理
  • 会计软件每年都要付钱的吗
  • 稳岗补贴给谁
  • 税务局代扣代缴税费
  • 股权出资登记管理办法已废止
  • 房产税逾期未申报罚款多少
  • 无形资产账面价值和可收回金额孰低摊销吗
  • 财务费用利息收入在损益表中怎么填
  • 小微企业怎么合法避税
  • 外企投资应该怎么投资
  • 固定资产清理会计处理例题
  • 普通发票上个月的怎么作废
  • 债券分期还本利息怎么算
  • 应交税费留底增值税
  • 行业收购溢价
  • iphone7plus怎么设置5g网络
  • 成本核算的意义是什么
  • 联想一体机如何调节屏幕亮度
  • iis配置mime
  • python中函数的可变参数有哪几种?各有什么特点?
  • WIN10怎么禁止始终处于活动状态
  • msg3.0.db是什么文件
  • 实际投资收益率等于什么
  • win10输入法没有候选词
  • 企业清算所得税申报
  • 超市收取进场费会计分录
  • 个人独资企业法律责任
  • 万能的python
  • discuz关闭电脑版
  • 工业企业生产费用最基本的分类是
  • wordpress!
  • 织梦cms官网
  • 救护车车船税优惠政策
  • 职工教育经费的比例是多少
  • mysql 子查询
  • sqlserver2008触发器语法
  • 实收资本变化
  • 资产处置损益影响损益吗
  • 有哪些发票可以报销
  • 现在勾选认证是可以下月初认证?
  • 购买税控系统的增值税怎么处理
  • 企业未开票收入怎么入账
  • 转账支票记到哪个科目
  • 委托加工如何做会计处理
  • 管理费用如何做分录
  • 短期借款利息计提分录怎么写
  • 招聘一年以内
  • 车间成本核算表
  • 工程结算科目是一级科目吗?
  • 财务工作交接的通知
  • 外贸企业怎么开出口发票
  • 企业成立前期的重点工作
  • 目前默认系统%1
  • centos7 tcp6
  • rsync windows linux
  • centos7安装yum报错
  • win8无法识别存档文件
  • win10每次登录都要输入微软密码
  • linux执行多个脚本
  • perl package
  • javascript语言介绍
  • javascript的if
  • js的调试
  • 安全的代码
  • js实现文字闪烁的方法
  • 国家税务局网上电子税务局官网重庆
  • 安徽省国家税务局电子税务局
  • 工会经费怎么缴纳不了
  • 抚州到崇仁火车时刻表
  • 消费税是含税价
  • 股权转让和大宗转让区别
  • 如何用微信进行社保认证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设