位置: 编程技术 - 正文

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

  • 发放福利视同销售进项税要转出吗?
  • 印花税的纳税人是买方还是卖方
  • 赠送代金券的广告语
  • 纳税申报表上的二维码有什么用?
  • 租赁合同印花税率
  • 母子公司固定资产交易
  • 稳岗返还入什么科目
  • 加工企业购入辅料记入什么科目?
  • 别人退保证金多久能到账
  • 购买方退货的会计处理
  • 开发经济适用房是否需要缴纳土增税
  • 个人公寓出租给公司要交税吗?
  • 开具的增值税专用发票上注明的价款为50万元
  • 固定资产小于500万一次性扣除政策
  • 未分配利润转入本年利润
  • 进项税额转出后再转入怎么做账
  • 研发费用领用材料
  • 现金流量表根据什么原则编制
  • 远程清卡失败怎么办
  • 退休返聘人员工伤怎么赔偿
  • 负债转为投资 资本增加吗
  • 因质量问题扣款协议
  • 购买货车预付保险怎么算
  • 企业不得抵扣进项税
  • 消耗性生物资产如何结转成本
  • 法人个人账户收钱算不算公司收钱
  • 暂估主营业务成本怎么冲销
  • 税务退回城建税期末怎么结转
  • 会计实务加班费的账务处理
  • Win10 Build 19043.1147 (21H1)预览通道更新补丁KB5004296(附完整更新日志)
  • PHP:pg_connection_reset()的用法_PostgreSQL函数
  • 税控系统发票如何验旧
  • 实缴资金少有什么风险
  • neoDVDstd.exe - neoDVDstd是什么进程 有什么用
  • 应收股利的主要特点
  • 购买商品或服务赠品法律地位
  • 内置天线手机
  • 应收债权与应付债务
  • 深度学习数据集—水果数据集大合集
  • elm命令 纯文本邮件客户端程序
  • cd oobe是什么命令
  • 一般情况下公司为什么会吊销
  • 嵌入式软件产品税率
  • 固定资产折旧怎么做会计科目
  • 企业纳税人应缴的税额
  • js对象模型是什么
  • 其他科技推广服务业可以加计扣除吗
  • 个人劳务费用
  • 什么是,利息
  • 银行贷款第三方是什么意思
  • 营业外收入汇算清缴时也得计入收入
  • 民办非企业收到政府拨款分录
  • 金融企业往来支出属于什么科目
  • 出口不报关账务处理
  • 应收账款全额计提的条件
  • 根据银行流水如何计算成本
  • 公司员工垫付款项
  • 提前报废固定资产需要补提折旧
  • 出库未开发票
  • 筹建期开办费明细
  • 工会经费不够
  • 基本户转法人个人账户如何做账
  • 如何办icp许可证
  • 个体工商户的建筑劳务是否需要资质
  • 磁盘已满
  • win7系统怎么用
  • spvic.exe - spvic是什么进程 有什么作用
  • macbook快捷操作大全
  • centos hosts
  • win8正版系统自带
  • 激素六项雌二醇30
  • win10系统无线网络连接在哪
  • opengl
  • element拖拽
  • python数据结构教程
  • 简略说明本岗位最高风险的防范措施和现场处置方案
  • 简述jquery的优势
  • unityugui
  • 江苏省国家税务局电话号码
  • 买车没有按时交车怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设