PHP基础知识 - PHP魔术方法
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
PHP 13 个常用魔术方法:
__construct、__destruct、__call 或 __callStatic、__get、__set、__isset、__unset、__toString、__clone、__autoload、__invoke、__sleep、__wakeup
1、__construct
构造方法
__construct
构造方法当一个类被实例化创建对象时会调用构造方法。
2、__construct
构造方法
__destruct
析构方法 当对象在销毁之前或失去对对象的引用时会调用 析构方法。
3、__call 或 __callStatic
- 当调用一个未定义的或没有权限的成员方法时会调用
__call
方法。当在静态方法中调用一个未定义的或没有权限的成员方法时则会调用__callStatic
方法。- 如果本类找不到调用的成员方法会去父类中找。
- 如果本类找不到
__call
方法会去父类中找。
4、__get
当调用一个未定义的或非公有的成员属性时会调用
__get
方法。
5、__set
当给一个未定义的或非公有的成员属性赋值时 会调用
__set
方法。
6、__isset
当在一个未定义的或非公有的成员属性上调用
isset
函数时会调用__isset
方法。
7、__unset
当在一个未定义或非公有的成员属性上调用
unset
函数时会调用__unset
方法。
8、 __toString
在打印输出一个对象时, 会自动调用
__toString
方法。 例:echo 对象名
。
9、__clone
当克隆一个对象时, 会自动调用
__clone
方法。 例:$clone_obj = clone 对象名;
10、__autoload
在实例化一个尚未被定义的类时会自动调用
__autoload
来加载类文件。
11、__invoke
当尝试以调用函数的方式调用一个对象时, 会自动调用
__invoke
方法。
12、__sleep
serialize()
函数会检查类中是否存在__sleep
方法如果存在先执行__sleep
方法再执行 序列化操作。<?php class User { public function __sleep(){ // } } $obj = new User(); serialize($obj);
13、__wakeup
unserialize()
函数会检查类中是否存在__wakeup
方法如果存在先执行__wakeup
方法再执行 反序列化操作。<?php class User { public function __wakeup(){ // } } $obj = new User(); unserialize($obj);