PHP魔术方法小结

魔术方法:

一种特殊的函数

构造方法: __construct() 或者和类名同名的方法

触发时机:在对象实例化的时候自动触发。

作用:初始化成员属性

参数:可以有,可以没有,取决于设定和逻辑

返回值:没有

注意:如果构造方法具有参数,且参数没有默认值,在实例化对象时,必须在类名()内添加对应的实参值。

析构方法 __destruct()

触发时机: 在销毁对象的时候自动触发(unset或者页面执行完毕)

作用:回收对象使用过程中的资源。

参数:没有

返回值:没有

__get()

触发时机:访问私有成员属性的时候自动触发

功能:1.防止报错 2.为私有属性访问提供后门

参数:1个 访问的私有属性名称

返回值:可以有,可以没有

__set()

触发时机: 对私有成员属性进行设置值的时候自动触发

功能:1.屏蔽错误 2.为私有成员属性设置

参数: 2个 1私有成员属性名 2 要设置的值

返回值:无

__isset()

触发时机:对私有成员属性进行isset检测时自动触发

功能: 1.代替对象外部的isset检测,返回结果

参数: 1个 1私有成员属性名

返回值:有 一般返回 isset(属性)结果

__unset()

触发时机:在对象外部对私有成员属性进行unset操作时自动触发

功能: 1.代替对象外部的unset操作,返回结果

参数: 1个 1私有成员属性名

返回值:无

__sleep()

触发时机:在对象进行串行化操作时触发.

功能:指定需要串行化的成员属性.

参数:无

返回值: 需要返回一个数组类型,每个元素都是需要串行化的成员属性名.

__wakeup()

触发时机:.在对象进行反串行化时自动触发

功能:.反串行化时自动修改部分成员属性值.

参数:无

返回值: 无

__tostring()

触发时机:对一个对象进行echo操作时 自动触发

功能:简化操作或者为对象输出值

参数:无

返回值:必须有且必须为字符串类型.

__clone()

触发时机:对对象进行克隆操作时自动触发

功能:修改克隆之后的对象的部分属性值.

参数:无

返回值:无

注意:对象的赋值默认就是引用赋值,不能通过赋值操作获取一个新的对象,获取新对象的操作应该使用克隆操作

格式: 变量=clone 对象变量

__call()

触发时机: 调用了类中不存在的方法时自动触发

功能:1.屏蔽错误 2.为不存在的方法定义个一个功能.

参数:2个 1 不存在的方法名 2所有的实参组成的数组

返回值:可有可无(根据实际功能来看)

__autoload()(唯一一个类外部的魔术方法)

触发时机: 当页面中需要一个 类而该类不存在时自动触发

功能:实现类的自动加载.

参数1个 不存在的类名