位置: 编程技术 - 正文

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

  • 支付宝如何缴纳车辆购置税
  • 怎么计算土地增值税的相关税金
  • 公司出售房产缴纳税金如何凭证
  • 扣缴义务人和纳税人举例
  • 农村合作社怎么挣钱
  • 可转债中签后怎么操作卖出
  • 进仓费税率
  • 自然人独资交企业所得税吗
  • 债务豁免需要缴纳什么税
  • 税控盘费用进什么科目
  • 一般纳税人条件要求
  • 车船税在备注栏怎么报表
  • 股权转让1元转让
  • 员工本地住宿费会计分录
  • 个体户自有厂房怎么申请
  • 新领的发票怎么导入uk开票系统
  • 监理费可以由施工方出吗
  • 公司取现备用金违法吗
  • 土地增值税清算扣除项目
  • 银行汇票应计入什么科目
  • 审计调整分录如何写
  • 出口没有退税的发票
  • 一般企业每个月的保洁费用是多少
  • 招投标增值税
  • 应收未收的利息如何处理
  • 小规模纳税人可以开9%专票吗
  • 向员工发放用餐费的通知
  • 小规模购买农产品
  • 公司估值一般不超过市值多少
  • 申报补贴项目 审计
  • 怎么取消网络手动连接
  • 年度汇算清缴的企业所得税会计分录
  • php ftp管理系统
  • 进程mmc.exe
  • 在web页面中如果出现html语句
  • PHP:finfo_open()的用法_fileinfo函数
  • 延期支付土地款利息会计处理
  • 用vue做的登录界面
  • 税后现金流入
  • 小规模企业收到发票
  • 总账是按年还是按月结账
  • yolo v5 可视网络结构
  • 电赛2021题目
  • 汇算清缴补税的情况有哪些
  • 发票验证不过去会怎么样
  • 注销的公司需要清算吗
  • 机关党建经费提取比例
  • 未开票收入如何记账
  • 绩效工资扣款违法么?
  • 可转债中签卖出流程
  • 不具有销售性质的工作
  • 出口不报关怎么收款
  • 进出口贸易公司取名字大全
  • 没有海关完税凭证怎么入账
  • 员工预支钱要写什么单据
  • 存货盘盈的账务处理入什么费用
  • 支付的中介费进什么科目
  • 房地产企业的会计核算
  • 收到支持学校工作的短信怎么回复
  • 滞纳金的上限是多少
  • 转回存货跌价准备对递延所得税资产的影响
  • 费用报销银行转账用途怎么写
  • 实发工资高于工资表
  • centos6.10安装教程
  • win7系统安装完后启动不了
  • ubuntu怎样
  • ubuntu系统中文
  • 系统恢复 win10
  • linux 多网卡配置
  • windows8桌面图标没有了
  • [置顶]bilinovel
  • javascript怎么做
  • js 模拟滑动
  • jquery select2的使用心得(推荐)
  • python mp3play
  • js 进阶
  • 重庆个人所得税是多少
  • 青海税务发票查询
  • 公务员考试税局
  • 白酒消费税加征
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设