设为首页 收藏本站
查看: 924|回复: 0

[经验分享] PHP面向对象中常用的魔术方法总结

[复制链接]
发表于 2018-12-23 14:30:09 | 显示全部楼层 |阅读模式
  

1.构造函数__construct()’

说明:是对象创建完成后,第一个被调用的方法,当创建一个对象时,构造方法就会被自动调用一次,不能主动通过对象的引用调用构造方法。

作用:就是为成员属性初始化

格式:

Function __construct([参数列表]){

//方法体,通常用来对成员属性进行初始化赋值

}



2.析构函数__destruct()

说明:在销毁一个对象之前执行的一些特定操作,例如:释放文件、关闭结果集。

作用:关闭一些资源,做一些清理工作

格式:function__destruct(){

//方法体,通常用来完成一些在对象销毁之前的清理任务

}



3.方法重载 __call()

说明:调用对象中不存在的方法时会自动调用此方法,并且程序也可以继续向下执行。caLl()方法有两个参数:第一个是调用不存在的方法时,接受这个方法名称字符串;而参数列表则以数组的形式传递到__call()方法的第二个参数中。

格式:publicmixed__call ( string$name , array$arguments )



4.方法重载__callstatic()

说明:用静态方式调用一个不可访问的方法时,会自动调用此方法。$name参数是要调用的方法名称。$arguments参数是一个枚举数组,包含着要传递给方法$name的参数。

格式:public staticmixed__callStatic ( string$name , array$arguments )

5.__get()

说明:直接在对象的外部获取私有属性的值时,会自动调用此方法,返回私有属性的值。并且可以再__get()方法中根据不同的属性,设置一些条件来限制对私有属性的非法取值操作。

格式:publicmixed__get ( string$name )



6.__set()

说明:控制在对象外部只能为私有的成员属性赋值,不能获取私有属性的值。

作用:是在程序运行过程中为私有的成员属性设置值,它不需要任何返回值。但他需要两个参数,第一个参数需要传入在为私有属性设置值时的属性名,第二个参数则需要传入为属性设置的值。

格式:publicvoid__set ( string$name , mixed$value )

7.__isset()

说明:当需要测定对象里面的私有属性的值时,会自动调用此方法,间接地帮助我们完成对对象中私有成员属性的测定。

格式:publicbool__isset ( string$name )

8.__unset()

说明:当对不可访问属性调用unset()时,__unset() 会被调用。进行私有属性的删除操作。

格式:publicvoid__unset ( string$name )

9.__sleep()

说明:在调用seralize()函数将对象串行化时,会自动调用此方法,用来将对象中的部分成员串行化。该函数不接受任何参数,但需要返回一个数组,在数组中包含需要串行化的属性。未被包含在数组中的属性将在串行化时被忽略。如果没有在类中声明__sleep()方法,对象中的所有属性都将被串行化。

格式:publicarray__sleep ( void )

10.__wakeup()

说明:在调用unseralize()函数反串行化对象时,会自动调用此方法,用来在二进制串中重新组成一个对象时,为新对象中的成员属性重新初始化。

格式:void__wakeup ( void )

11.__toString()

说明:是快速获取对象的字符串表示的最便捷的方式,他是在直接输出对象引用时自动调用的方法。

格式:publicstring__toString ( void )

12.__invoke()

说明:当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。

格式:mixed__invoke ([ $... ] )

13__clone()

说明:该方法在对象被克隆时自动调用,所以就可以通过此方法对克隆后的副本重新初始化。该方法不需要任何参数,该方法中自动包含$this和$that两个对象的引用,$this是副本对象的引用,而$that则是原本对象的引用。

格式:void__clone ( void )



  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654895-1-1.html 上篇帖子: 工作历程(从ASP到PHP再到Java) 下篇帖子: PHP学习笔记【11】_方法收集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表