位置: 编程技术 - 正文

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

  • 福建国税网上办税平台登录
  • 计提增值税的会计凭证
  • 外币报表折算差额是一种未实现的汇兑损益
  • 教育行业主营业务内容
  • 红字发票盖章吗
  • 小规模纳税人建筑服务税率是多少
  • 什么情况可以减免税收
  • 税控盘服务费怎么填写申报表
  • 被代持股份怎么退出
  • 企业增值税留抵退税新闻稿范文
  • 专票怎么提交不上去
  • 营改增后发票上必须要开具税收分类编码吗?
  • 开具出口发票时免税类型怎么选择?
  • 固定资产进项税额转出怎么做账务处理
  • 医疗器械技术服务合同
  • 固定资产进项税额怎么抵扣
  • 开办费要如何扣款
  • 分期付款购入原材料怎么做账
  • 空调安装工程如何做
  • 先亏后盈法案例分析
  • 发票未到的费用怎么处理
  • 减少子公司合并的风险
  • 主营业务成本净额计算公式
  • 金融企业贷款损失准备金税务管理
  • openlayers加载geojson
  • php utf8转gb2312
  • 暂估成本跨年怎么处理分录
  • 什么是摊余成本计量的金融资产
  • php数组函数大全
  • php file_append
  • 工程质保金如何做账
  • 谷歌浏览器调试窗口怎么放下面
  • d2loader does not recognize
  • php7 nginx
  • PHP中include/require/include_once/require_once使用心得
  • 发票收件人信息
  • 小规模纳税人增值税税率
  • 企业增值税发票管理办法
  • 保理融资费用账务处理
  • 开具增值税专用发票的规定
  • dedecms怎么用
  • python中mktime函数
  • sql server 2008设置角色
  • MySQL 数据库中,用于事务授权控制的关键词是下面哪个?
  • 企业合并财务报表论文
  • 预计表示什么意思
  • 关于种植养殖的手抄报
  • 实收资本为零该怎么办
  • 发放外单位人员劳务费需要在发放表上签字吗
  • 委托加工科目有余额嘛
  • 少做收入第二年怎么算
  • 转账支票填写样本图片
  • 抵扣与扣除的区别
  • 累计折旧的计提会计分录
  • 幼儿园报税的基础是什么
  • 企业被收购的账务处理
  • mysql动态sql语句赋值
  • 如何做电脑系统备份
  • 如何快速找到注册的软件
  • 微软每月补丁更新一般于什么时间发布
  • system idle process 连接了外网
  • win7系统电脑图标不见了
  • 红帽子在工地上是什么级别
  • win7打开tftp服务器
  • windows7无法激活怎么解决方法
  • WIN10系统中断
  • windows运行nodejs
  • glslpe
  • nodejs实例教程
  • shell脚本怎么导出
  • linux随机数生成1到100
  • unity怪物自动攻击
  • windows下安装nas
  • 浅谈javascript网页编码特效论文
  • python 时间戳与格式化时间的转化实现代码
  • bootstrap需要学多久
  • 国家税务局发票验证查询系统
  • 江苏电子税务局电话
  • 税务行业微信缴税项目是什么消费
  • 玉石手镯零售环保要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设