位置: 编程技术 - 正文

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

  • 总账会计的职责目标设定
  • 房屋租赁服务增值税税率是多少
  • 发票审核未通过,怎么查原因
  • 支票退票怎么做账务处理
  • 原始凭证分割单样本
  • 应付职工薪酬为什么不属于金融负债
  • 合并报表中怎么抵消投资性房地产
  • 土地摊销计入在建工程吗
  • 股东个人为公司付的钱
  • 个人因终止投资经营而取得的股权转让收入如何计算个人所得税?
  • 银行汇票怎么填写
  • 购进商品交印花税
  • 收到未税货款怎么入账
  • 公司用现金支付的形式有哪些
  • 递延收益是什么表
  • 增值税补交还有没有责任
  • 确认应收账款不确认收入
  • 应交税金减免税金需要结转吗
  • 给个人的返利如何交税
  • 车辆保险费的车船税计入什么会计科目
  • 只要有收入就要交印花税吗
  • 存款保险能取出来钱吗
  • 经营终止前企业资质变更
  • 固定资产减值准备属于什么科目
  • 金蝶哪个版本最好
  • 盈余公积什么时候调整
  • 结存材料实际成本计算公式例题
  • 专用发票右上角的数字表示什么
  • 企业为员工购买社保缴费标准
  • 收到的劳务费发票可以抵扣吗
  • 装载u盘
  • 企业对外捐赠设备会计分录
  • win10好几个操作系统
  • 电脑dat文件怎么打开
  • 超过两年的发票还可以查询吗
  • myfastupdate.exe - myfastupdate是什么进程文件 有什么用
  • 阿里云jar包
  • 政府补贴款计入什么科目是否纳税
  • react 路由参数
  • node.js安装步骤
  • js数组菜鸟教程
  • linuxshel
  • sar参数设置4个数
  • 个税app重置申报
  • 增值税专用发票丢了怎么补救
  • 高速公路电子发票查询平台
  • wordpress怎么安装插件
  • php如何连接html
  • mysql主键和索引
  • pythonzen
  • 汽车的计提折旧
  • 查验发票显示红冲是什么意思
  • 出售长期股权投资
  • 进项的加计抵减怎么算
  • 非应税项目是有哪些项目
  • 工程施工和工程结算对冲有差额的会计分录
  • 给客户买的礼品要交税吗
  • 车辆罚款单可作为费用报销吗
  • 结转成本附什么附件
  • 管理费用记错了跨年了怎么调整
  • 土地使用税和房产税是一起的吗
  • 公司帮别人代缴社保要交税吗
  • 推广费计入哪个科目
  • 车票抵扣税款
  • 计提折旧的固定资产有哪些
  • mysql -ne
  • sql存储过程实例
  • windows8快速启动设置
  • 新买的笔记本电脑需要做什么
  • Metaio in Unity3d 教程--- 四:再谈谈图片扫描之tracking配置文件
  • unity editor window
  • ntfs权限怎么设置
  • 了不起的女孩
  • js创建对象的三种方式
  • jsonp如何解决跨域问题
  • 将一个目录复制到另一个目录下
  • jquery(document).ready
  • Android自定义动画
  • 小规模纳税人税率2024
  • 设计服务税收分类编码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设