位置: 编程技术 - 正文

浅谈PHP中的面向对象OOP中的魔术方法(php是面向过程还是面向对象)

编辑:rootadmin

推荐整理分享浅谈PHP中的面向对象OOP中的魔术方法(php是面向过程还是面向对象),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:浅谈php中的面向人群,php是面向过程还是面向对象,浅谈php中的面向对象,php面向对象的三大特性,php是面向什么的语言,php是面向过程还是面向对象,浅谈php中的面向人群,php是面向过程还是面向对象,内容如对您有帮助,希望把文章链接给更多的朋友!

一、什么是魔术方法:

PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。例如:

function __construct(){} 在new一个新对象时自动调用此函数

二、PHP中都有那些魔术方法,以及它们的作用:

1.__construct():构造函数,new对象时自动调用

eg:

在new新的Person对象时会自动调用__construct()函数,将传入的参数分别赋给$name,$age。

2.__destruct():析构函数,当一个对象被销毁前自动调用

同上所述,对象被销毁时执行此魔术方法

3.__get():访问类中私有属性时自动调用,传递读取属性名,返回$this->属性名

如上代码,$name被设为私有属性后不能直接通过$this->name;的方式读取,因此需要设置__get()魔术方法来读取。

4.__set():给类的私有属性赋值时自动调用,传递需设置的属性名,属性值

同__get()方法,私有属性不能通过$this->name="aaa";的方式直接设置,需要设置__set()方法,传入的参数分别是属性名和属性值。

5.__isset():使用isset检测对象私有属性时调用,传递检测的属性名,返回isset($this->属性名)

浅谈PHP中的面向对象OOP中的魔术方法(php是面向过程还是面向对象)

使用isset检测对象私有属性时调用,其他同上。

6.__unset():使用unset()函数删除对象私有属性时调用,传递删除的属性名,方法中执行unset($this->属性名)

同上,在用unset()函数删除私有属性时调用。

7.__toString():使用echo打印对象时调用,返回打印对象时想要显示的内容,返回必须是字符串

使用echo打印对象时调用,返回打印对象时想要显示的内容。

8.__call():调用一个类中未定义的或未公开的方法时自动调用,传递被调用的函数名及参数列表

如代码所示,调用不存在的say(1,2,3);时,会打印

您调用的函数way,参数列表Array ( [0] => ) 不存在

9.__clone():当使用clone关键字,克隆一个对象时自动调用,作用是为新克隆的对象初始化赋值

打印出的结果是"lisi",而不是"zhangsan"。

.__sleep():对象序列化时自动调用,返回一个数组,数组中的值就是可以序列化的属性

如上述代码,在用serialize()序列化对象时只有"name","age"属性会被序列化。

.__wakeup():对象反序列化时自动调用,为反序列化新产生的对象进行初始化赋值

将对象序列化后再反序列化,同时给对象的name属性赋初值为"lisi"。

.__autolode():需要在类外部声明函数,当实例化一个未声明的类时自动调用,传递实例化的类名,可以使用类名自动加载对应的类文件。

如上述代码,Person类不存在时调用__autolode()方法,载入写在文件外的类,"class/".strtolower($className).".class.php";就是类文件的相对路径,$className就是

不在本文件中的类的类名,因此在创建外部类文件时命名方式必须是小写的类名.class.php。__autolode()方法也是惟一一个不用写在类中的魔术方法。

标签: php是面向过程还是面向对象

本文链接地址:https://www.jiuchutong.com/biancheng/293233.html 转载请保留说明!

上一篇:用php+ajax新建流程(请假、进货、出货等)(php ajax 教程)

下一篇:php 中的closure用法详解(php closure类)

  • 股东个人房产转入公司契税
  • 子公司自购买日开始持续计算的净资产包括商誉吗
  • 小汽车折旧年限的最新规定2023
  • 个体户怎么开增值税普通发票过程
  • 成立一般纳税人公司
  • 收据盖公章要注意哪些
  • 代人开增值税怎么收费?
  • 商誉转销会计分录
  • 佣金支出和手续费税前扣除相关政策依据及会计处理
  • 我国流转税主要包括
  • 高温补贴领取
  • 年报所得税与季报的区别
  • 独生子女保健费发到孩子多大年纪
  • 房地产增值税预征率
  • 增值税专用发票使用规定 最新
  • 注册资本需要
  • 个体户增值税怎么算
  • 如何查询已开出的增值税发票是否被认证
  • 发票边上的虚线是什么
  • 新领的发票怎么读入开票系统
  • 审计费用收取标准的2020
  • 法院拍卖破产企业房产,税费问题
  • 计提法定盈余公积分录并结转
  • 升级打装备的手游
  • 王者荣耀如何充值退款
  • 原始股解禁后减持的条件是什么
  • 收到对方公司开的发票怎么做账
  • postgres.exe是什么进程 postgres进程查询
  • ie浏览器进程
  • php null false
  • 如何加强企业应收应付款管理论文
  • 详解 HttpServletResponse
  • 固定资产折旧需要减去减值准备吗
  • 山东省项目
  • echartsgrid属性
  • 国内版的chatpdf
  • 餐费补贴是否计提
  • 生产过程报废和返工产生的成本
  • 调整以前年度错账会计分录怎么做
  • sqlyog
  • 买一赠一税务局答复
  • 评估费用由谁承担
  • 进料加工出口退税核销最新流程
  • 低值易耗品摊销会计处理
  • 车辆购置税 购置
  • 国有资产无偿划转需要缴税吗
  • 固定资产可以一次性折旧吗
  • 出口退税申报系统汇率修改
  • 委托代销业务的会计分录
  • 未分配利润是不是净利润的意思
  • 商贸公司经营范围可以写烟酒吗
  • 残疾人就业保障金会计分录怎么做
  • 交税务局的工会经费现金流
  • 积分换购怎么做账
  • 什么是收入?企业有哪些
  • 企业如何计算增值税
  • 会计工作的基本步骤和主要工作
  • 房地产企业会计处理实务
  • 在centos上安装ftp服务应运行指令
  • mysql数据库中储存的是
  • mysqlbinlog -vvv
  • win7系统打开计算机的管理出现正在向控制台添加属性
  • 解析包出现错误无法安装怎么办
  • 双系统怎么卸载系统
  • sointgr.exe - sointgr是什么进程 有什么用
  • SSSvr.exe - SSSvr是什么进程
  • 用diskgenius硬盘格式转换怎么使用
  • grub4dos linux
  • Win8中漂亮的metro开始画面图标最大列数的设定方法
  • javascript语句大全
  • shell脚本基础教学
  • hashmap详细讲解
  • python程序讲解
  • 使用灭火器时要对准火焰的什么部位喷射
  • 浅谈自己对教育的理解
  • python里list
  • 企业所得税纳税申报表A类
  • 上海税务机关代码查询
  • 增值税税控开票软件密码不知道了怎么办
  • 小规模纳税人30万免税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设