黑马程序员技术交流社区

标题: 一网打尽常用的PHP魔术方法 [打印本页]

作者: huawei    时间: 2016-10-7 12:01
标题: 一网打尽常用的PHP魔术方法
本帖最后由 huawei 于 2017-3-5 11:10 编辑

一网打尽常用的PHP魔术方法
什么是魔术方法?我们举例说明!


       1)__autoload() :当程序实例化某个类,而该类没有在当前文件中被引入。此时会触发执行__autoload()。程序希望通过该方法,自动引入这个类文件。该方法有一个参数,即就是那个忘记引入的类的名称。__autoload()方法的工作原理是什么?当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后,就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。使用自动载入的魔术函数可以不必要写很多个include或者require函数。

        2)__construct()  :这个是魔术构造方法。构造方法是实例化对象的时候自动执行的方法,作用就是初始化对象。该方法可以没有参数,也可以有多个参数。如果有参数,那么new这个对象的时候要记得写上相应的参数。在php5以前,没有魔术构造方法,普通构造方法是一个跟类名同名的方法来实现构造的。如果一个类中既写了魔术构造方法,又定义了普通构造方法。那么php5以上版本中,魔术方法起作用,普通构造方法不起作用。反之,在php5以前版本中,不认识魔术构造方法,只是把该方法当做普通的方法。

        3)__destruct()  :这个是魔术析构方法。析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。析构方法没有参数。

        4)__call() :当程序调用一个不存在或不可见的成员方法时,自动触发执行__call()。它有两个参数,分别是未访问到的方法名称和方法的参数。而第二个参数是数组类型。

        5)__get() :当程序调用一个未定义或不可见的成员属性时,自动触发执行__get()。它有一个参数,表示要调用的属性的名称。

        6)__set():当程序试图写入一个不存在或不可见的成员属性时,PHP就会自动执行__set()。它包含两个参数,分别表示属性名称和属性值。

        7)__tostring()  :当程序使用echo或print输出对象时,会自动调用该方法。目的是希望通过该方法将对象转化为字符串,再输出。__tostring() 无参数,但是该方法必须有返回值。

        8)__clone()  :当程序clone一个对象的时候,能触发__clone()方法,程序希望通过这个魔术方法实现:不仅仅单纯地克隆对象,还需要克隆出来的对象拥有原来对象的所有属性和方法。


精华推荐:

2017最新PHP学习路线图(附完整视频资源)+源码+技巧/经验+求职+前景总结!
连续两班仅6日就业率突破53%,看2016PHP课程升级是否成功!
视频集合:众多老学员呐喊:"为什么我选传智PHP"!



作者: kevin_bj    时间: 2016-10-29 11:34
666666666666666
作者: eddies    时间: 2016-11-2 09:36
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 小小海    时间: 2016-11-10 19:39
ewydgiwqejiw
作者: 15050187118    时间: 2016-11-11 09:37
测试......
作者: 7257242    时间: 2016-11-12 11:08
6666666666666
作者: 782934029    时间: 2016-11-14 10:08
6666666666666666666666666666
作者: jason_QS    时间: 2016-11-18 23:06
PHP魔术方法
作者: 夜歌行    时间: 2016-11-20 16:02
12222222222222222222222222222222
作者: ysp110    时间: 2016-11-22 10:40
至今不知道怎么用!
作者: qq332984152    时间: 2016-11-23 01:03
1615615615165165
作者: ch123cn    时间: 2016-11-25 17:41
RE: 一网打尽常用的PHP魔术方法
作者: xxt598316205    时间: 2016-11-29 14:53
666666666666666666666666666
作者: hp_eckj_luox    时间: 2016-12-12 15:00
一网打尽常用的PHP魔术方法 [修改]
作者: Rakishly    时间: 2016-12-14 18:05
常用的PHP魔术方法 [修改]
作者: xw1985520    时间: 2016-12-17 17:03
qsqwrqwrqereqrqerqweqwew
作者: 踏上PHP征程    时间: 2016-12-18 13:26
学习一下 谢谢 嘻嘻嘻
作者: 踏上PHP征程    时间: 2016-12-18 13:29
学习一下 谢谢 嘻嘻嘻
作者: 肖肖肖    时间: 2016-12-18 23:31
谢谢分享!!!
作者: qq274805539    时间: 2016-12-19 09:00
楼主牛逼

作者: fanphp    时间: 2016-12-24 10:18
谢谢楼主分享
作者: www6688w    时间: 2016-12-27 11:44
人员和他人复合肥
作者: VC丶万人敬仰    时间: 2017-1-3 16:35
6666666666666666666
作者: LEEJUN    时间: 2017-1-5 11:23
66666666666666666666
作者: 问题先生    时间: 2017-1-15 21:27
学习PHP中
作者: ZachLin    时间: 2017-1-19 14:06
一网打尽常用的PHP魔术方法
作者: PHPjava    时间: 2017-1-21 10:41
dddddddddddddddddddddddddddd
作者: 1317181388    时间: 2017-2-3 00:40
感谢楼主分享
作者: 逗号先生    时间: 2017-2-8 14:28
的点点滴滴多
作者: 初丁多指教    时间: 2017-2-11 12:10
谢谢分享
作者: 嘎啦儿    时间: 2017-2-15 15:15
拿出来看看
作者: fjdaslfjk    时间: 2017-2-16 11:21
PHP魔术方法
作者: yu778377806    时间: 2017-2-16 15:51
666666666666666666
作者: Tody    时间: 2017-2-16 15:52
啊啊啊啊啊啊啊啊啊啊啊
作者: Cai小神    时间: 2017-2-23 17:41
一网打尽
作者: eke2007    时间: 2017-3-2 09:38
6666666666666
作者: 淋淋雨    时间: 2017-3-5 17:56
···········································
作者: Overflow    时间: 2017-3-13 16:24
111111111111111111111111111
作者: 飘香的咖啡    时间: 2017-3-26 00:33
谢谢分享了
作者: 剑客星辰    时间: 2017-4-30 10:49
3333333333333
作者: 咿呀咿呀哟    时间: 2017-5-2 09:34
啊啊啊~好东西啊,感谢分享~

作者: worldtongf    时间: 2017-5-21 00:41
PHP常量PHP常量PHP常量PHP常量
作者: 瞬间回忆    时间: 2017-5-24 16:15
一网打尽常用的PHP魔术方法
作者: thinkJUN    时间: 2017-7-3 10:14
感谢分享
作者: genecool007    时间: 2017-7-28 18:03
本帖最后由 genecool007 于 2017-7-28 18:04 编辑

楼主牛牛牛!!!!
作者: 金海环境    时间: 2017-8-4 09:31
111111111111111111111111
作者: CJH    时间: 2017-8-10 13:16
魔术方法是个什么鬼
作者: iamyhf    时间: 2017-8-28 07:50
回复查看详情
作者: reader799    时间: 2017-9-2 14:49
好好学习
作者: newu    时间: 2017-9-2 14:56
学习一下 谢谢 嘻嘻嘻
作者: yuanlinjiayou    时间: 2017-9-8 16:26
lllllllllllllllllll
作者: 释然36    时间: 2018-7-4 16:29
ea oinjiujingshishenme huishi
作者: hu838135705    时间: 2018-11-29 15:22
一网打尽常用的PHP魔术方法
作者: bug刘    时间: 2019-2-16 10:30
学习学习
作者: frmsceg    时间: 2019-4-1 10:04
谢谢分享
作者: Try-again    时间: 2021-4-29 19:58
PHP新手必知




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2