位置: 编程技术 - 正文

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

  • 小规模修理修配的税率是多少
  • 个人所得税是什么费用
  • 金融企业往来支出属于什么科目
  • 公允价值变动损益影响营业利润吗
  • 个税汇算清缴时全年一次性奖金汇总到工资薪金怎么操作
  • 电子税务局怎么注册
  • 2021年旅游免费
  • 资产重组的税务筹划
  • 产品不合格造成客户损失怎么赔付
  • 个人挂靠公司承接工程如何做会计处理?
  • 高管怎么样
  • 代开发票有哪些问题需要知道的?
  • 企业被列为风险纳税人税控开票会显示什么
  • 符合免税条件的一般纳税人开具发票税率
  • 营改增对运输业的影响
  • 个体工商户增值税税率2023年
  • 公司注销资产负债表期末余额不能为0
  • 生产车间广告牌设计图片
  • 服务器研发属于什么行业
  • 商业承兑汇票如何查询
  • 怎么关闭iphone手机
  • win 11 无法安装
  • safari浏览器开发者模式
  • Win10 64位正式版系统安装方法全过程图解(U大师)
  • 其他应付款长期挂账税务处理
  • 劳务服务包括哪些范围
  • mac怎么airdrop给ipad
  • php中删除文件的函数
  • 出租商品计入什么科目
  • 抵扣进项税额的几种情况是
  • php分片上传文件
  • 残保金怎么计算公式
  • 设计公司发生的费用
  • iotop命令 监视磁盘I/O状态
  • emacs scheme
  • php实现上传图片功能
  • 为什么银行结息不加入账户
  • 嵌入式软件开票要求
  • 利润表中本期数
  • 什么经营范围可以开门票发票
  • 费用化支出需要摊销吗
  • mysql的基本介绍
  • 红字发票开错可以重开吗
  • 生产企业免抵退是什么意思
  • 增值税抵扣联是什么意思
  • 利润是非限定净现值吗
  • 普票和专票的
  • 非营利组织也被称为?
  • 贸易公司委托加工费怎么入账
  • 资产负债表中的固定资产怎么算
  • 增值税专用发票抵扣期限
  • 出售投资所得属于什么科目
  • 增值税销项税额属于什么科目
  • 原材料不足
  • 工程项目买保险需要哪些资料
  • 仓库包材问题和造成的后果
  • 企业增加实收资本的途径不包括
  • 4s店出售试驾车账务处理
  • 人工费没有发票怎么办
  • 招待费住宿费专票可以抵扣吗
  • 认证抵扣发票
  • 收到退回多付的材料退款
  • 进口固定资产的汇率怎么算
  • 新手学会计怎么学
  • 怎样设置禁
  • arm和x86性能差多少
  • windows8装 .NET 3.5 时出现0x800F0907错误解决方法
  • windows8的ie浏览器在哪
  • 如何永久激活win11
  • 电脑老是弹出提示
  • win 7怎么办
  • cocos2dx camera
  • 基于个人同意处理个人信息的个人什么撤回其同意
  • jquery日程安排
  • css fontstyle
  • 我决定放弃了你却对我笑了
  • scrollcontroller
  • jquery层次选择器主要包括哪几种分类
  • 怎样在手机上查询社保缴费情况
  • 进口汽车零部件编码查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设