php

php 魔术方法

2023-10-08

php在面向对象编程时有一些特殊的方法,会在特定的时机自动调用,我们将这类方法称为魔术方法

1、__construct,__destruct

__constuct构建对象的时被调用;

__destruct明确销毁对象或脚本结束时被调用;

2、__get,__set

__set当给不可访问或不存在属性赋值时被调用

__get读取不可访问或不存在属性时被调用

3、__isset,__unset

__isset对不可访问或不存在的属性调用isset()或empty()时被调用

__unset对不可访问或不存在的属性进行unset时被调用

4、__call,__callStatic

__call调用不可访问或不存在的方法时被调用

__callStatic调用不可访问或不存在的静态方法时被调用

5、__sleep,__wakeup

__sleep当使用serialize时被调用,当你不需要保存大对象的所有数据时很有用

__wakeup当使用unserialize时被调用,可用于做些对象的初始化操作

6、__clone

进行对象clone时被调用,用来调整对象的克隆行为

7、__toString

当一个类被转换成字符串时被调用

8、__invoke

当以函数方式调用对象时被调用

9、__set_state

当调用var_export()导出类时,此静态方法被调用。用__set_state的返回值做为var_export的返回值。

10、__debuginfo

当调用var_dump()打印对象时被调用(当你不想打印所有属性)