位置: 编程技术 - 正文

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

  • 那些车不用交税
  • 消费税和所得税的关系
  • 小规模纳税人要做账吗
  • 年末为什么要结转应付现金股利
  • 怎么在电子税务局添加银行账户
  • 如果零申报
  • 支付境外培训费
  • 如何在网上查询发票
  • 抵押住房属于
  • 向非关联企业捐赠现金会计分录
  • 节税租赁和销售的区别
  • 加工企业购入辅料记入什么科目?
  • 事业单位财政授权书模板
  • 物业公司收取的电费怎么确认收入
  • 养老金余额退休能取吗
  • 增值税抵扣凭证包括农产品收购发票
  • 逃税漏税不用坐牢吗
  • 房租发票进项税可以抵扣吗
  • 劳务派遣服务用简易计税方法吗
  • 打款给个体户
  • 土地出让金返还流程
  • 报表中在产品填什么数据
  • 支出凭证的日期
  • 小规模纳税人专票如何申报
  • 个人装修可以开发票吗?
  • 佣金的规定方法有哪些
  • iphone怎么格式化掉所有内容和设置
  • 软件和硬件的成本按销售占比做分摊怎么算
  • 王者荣耀中甄姬的cp是谁
  • win10开机强制进入
  • 苹果mac怎么删除照片
  • Linux怎么修改账户名
  • zmweb.exe是什么进程
  • 猫鼬家族风云
  • php fpm原理
  • 关于交易性金融资产的问题
  • vue中使用数组
  • 购买办公用品没收到发票怎么做账
  • 其他营业账簿印花税减免政策
  • 无数据库cms
  • 民营医疗机构是指哪些
  • php显示当前时间
  • Discus X 3 门户改造熊掌号网页教程
  • 股东增资涉税
  • 公司清算的特征
  • sql server添加语句
  • 个体工商户怎么年报
  • 收到的货品与实物不符
  • 产品包装设计费属什么费用
  • 福利费发票抵扣了有什么后果
  • 红冲去年的管理费用
  • 开办费列支范围
  • 企业的利润怎么提出来
  • 增值税普票遗失可以补开吗
  • 销户还能申请抚养费吗?
  • 税前扣除项目主要包括
  • 政府奖励我公司的钱
  • 不同利益主体之间的利益如何协调
  • 没有发票的费用怎么报销
  • 企业会计准则规定,企业在对会计要素
  • 商场水电费应该由谁承担
  • MySQL必知必会读后感
  • wkqkpick.exe进程是什么
  • 电脑重装xp系统怎么设置
  • Mac如何开启sip
  • win7系统防火墙有必要开吗
  • linux数据恢复公司 海南
  • win8右侧栏设置
  • linux用ssh登录不进去
  • replace函数怎么替换
  • django实现登录注册功能
  • perl -p -i
  • c#中thread的用法
  • jquery验证
  • shell脚本中判断字符串是否相等
  • bootstraprow布局
  • 无偿使用的房屋装修如何摊销
  • 小额贷款公司在职人员和离职人员情节哪种轻
  • 成都交房需要交什么费用
  • 公司忘记报税了怎么补
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设