位置: 编程技术 - 正文

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

  • 缴纳印花税的会计科目
  • 企业为职工提供无偿服务
  • 税控财务软件装什么系统
  • 小规模纳税人免税会计分录
  • 砂石行业一般纳税人税率多少?能简易征收吗?
  • 资产负债表上应付账款根据什么填制
  • 招待费汇算清缴扣除比例
  • 黑色金属冶炼压延品税收编码
  • 生产成本里面的工资
  • 租赁负债的计量
  • 付款单位与开票单位不一致如何做账?
  • 资产负债表存货项目期末余额怎么算
  • 会计法对填制审核会计凭证有哪些规定
  • 品种法怎么计算在产品成本
  • 收到对方开错的发票怎么处理
  • 没有收入要做应交税费的会计分录
  • 合并重组案例
  • 计提费用的时候可以计提税金吗
  • 境外取得收入要不要交企业所得税
  • 社保和公积金的钱可以取出来吗
  • 稽查补缴增值税怎样做账
  • 收到投资的会计科目
  • win11正式版好用吗
  • 费用发票可以不上账吗
  • linux内核有什么作用
  • 如何安装u盘的系统
  • 银行拒付汇票金额的救济方法
  • 鸿蒙系统怎么去掉负一屏
  • 企业办理银行结汇流程
  • 建筑业预缴企业所得税是分季预缴按年抵减吗
  • 工程结算需要哪些施工方案
  • mch是什么文件
  • vue 页面生成pdf
  • 其他综合收益的来源
  • 应付票据转让会计分录
  • 电汇款项会计分录
  • PHP:mcrypt_list_modes()的用法_Mcrypt函数
  • 长期股权投资凭证
  • 注意力机制加在CNN的什么位置
  • 数据挖掘期末考试大纲
  • 汽车租赁的法律
  • 汽车租赁业务是否属于租赁服务
  • 车辆上牌费用会涨吗
  • 材料采购是什么类科目
  • 工程增值税怎么算,知道9%的税率
  • 预收账款需要申请吗
  • 数论电子书下载
  • 前年度多交附加税怎么交
  • python循环语句的语法
  • sqlite3 top的查询及limit语法介绍
  • 直接免征的税款属于政府补助吗
  • 出售转让固定资产的账务处理
  • 企业收到宣传费怎么做账
  • 支票存根联丢失可以用回单代替么
  • 长期股权投资如何确认
  • 支付宝可以对公账户转账吗怎么转
  • 小规模纳税人开专票税率是多少?
  • 限定性和非限定性资产
  • 超市的商品品种繁多琳琅满目
  • 审计年审内容
  • 存出保证金计入
  • 记帐凭证会计处理程序及其应用
  • 依法建账的法是指
  • mysql数据类型decimal
  • iis503如何解决
  • Windows Server 2008:手足之争下的赢家
  • 如何将windows安装到u盘
  • [下载转存] 经验本题库源文件下载转存 秒结
  • centos划分分区
  • linux ifconfig命令详解
  • python常见算法
  • unity ui控件
  • bash scp command not found的解决方法
  • easyui combobox设置值
  • 单向链表的基本操作
  • jquery使用jsonp
  • javascript中var的作用
  • python字符串的用法
  • 一般纳税人服务费是几个点
  • 每月个人所得税扣除标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设