浅谈PHP中的面向对象OOP中的魔术方法.docxVIP

浅谈PHP中的面向对象OOP中的魔术方法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈PHP中的面向对象OOP中的魔术方法

浅谈PHP中的面向对象OOP中的魔术方法今天欣才PHP培训机构来告诉大家PHP中的面向对象OOP中的魔术方法。一、什么是魔术方法:PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。例如:function __construct(){}?在new一个新对象时自动调用此函数二、PHP中都有那些魔术方法,以及它们的作用:1.__construct():构造函数,new对象时自动调用eg:123456789class?Person{?public?$name;?public?$age;???function?__construct($name,$age){?$this-name=$name;?$this-age=$age;?}}?在new新的Person对象时会自动调用__construct()函数,将传入的参数分别赋给$name,$age。2.__destruct():析构函数,当一个对象被销毁前自动调lass?Person{?public?$name;?public?$age;???function?__destruct(){?echo?这个对象被销毁了;?}}同上所述,对象被销毁时执行此魔术方法3.__get():访问类中私有属性时自动调用,传递读取属性名,返回$this-属性lass?Person{?private?$name;?public?$age;???function?__get($name){?return?$this-$name;?}}如上代码,$name被设为私有属性后不能直接通过$this-name;的方式读取,因此需要设置__get()魔术方法来读取。4.__set():给类的私有属性赋值时自动调用,传递需设置的属性名,属性lass?Person{?private?$name;?public?$age;???function?__set($key,$value){?$this-$key=$value;?}}同__get()方法,私有属性不能通过$this-name=aaa;的方式直接设置,需要设置__set()方法,传入的参数分别是属性名和属性值。5.__isset():使用isset检测对象私有属性时调用,传递检测的属性名,返回isset($this-属性名lass?Person{?private?$name;?public?$age;???function?__isset($name){?return?isset($this-$name);?}}使用isset检测对象私有属性时调用,其他同上。6.__unset():使用unset()函数删除对象私有属性时调用,传递删除的属性名,方法中执行unset($this-属性名lass?Person{?private?$name;?public?$age;???function?__unset($name){?unset($this-$name);?}}同上,在用unset()函数删除私有属性时调用。7.__toString():使用echo打印对象时调用,返回打印对象时想要显示的内容,返回必须是字符串12345678910111213class?Person{?public?$name;?public?$age;???function?__toString(){?$str?=?str?您要打印的内容是:\$name={$this-name};?\$age={$this-age};str;?return?$str;?}}使用echo打印对象时调用,返回打印对象时想要显示的内容。8.__call():调用一个类中未定义的或未公开的方法时自动调用,传递被调用的函数名及参数列表123456789101112class?Person{?public?$name;?public?$age;???function?__call($funcName,$funcParams){?echo?您调用的函数{$funcName},参数列表;?print_r($funcParams);?echo?不存在/未公开;?}}$zhangsan=new?Person();$zhangsan-say(1,2,3);如代码所示,调用不存在的say(1,2,3);时,会打印您调用的函数way,参数列表Array ( [0] = 123 ) 不存在9.__clone():当使用clone关键字,克隆一个对象时自动调用,作用是为新克隆的对象初始化赋值1234567891011class?Person{?public?$name;?public?

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档