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个 不存在的类名