php 魔术方法

2025-10-10 00:52:40

1、魔术方法  __set

触发时机: 类中声明多个私有属性重新赋值时

作用: 在程序运行过程中未私有的成员属性设置值

参数: @string name 成员属性名@mixed value 成员属性值

返回值:有,数组类型,每个元素都是一个成员属性值

注意事项:如果不在类中添加这个方法而直接为私有属性赋值,会出现”不能访问某个私有属性”的错误

魔术方法  __get

触发时机: 在对象的外部获取私有属性的值时,调用此方法.作用: 通过它可以在对象的外部获取私有成员属性的值

参数: @string name 成员属性名

返回值:有,返回成员属性值

注意事项:如果不在类中添加这个方法而直接为私有属性赋值,会出现”不能访问某个私有属性”的错误

魔术方法  __isset

触发时机: isset()函数在类外部测定对象里面的私有属性时,自动调用

作用: 当在一个未定义的属性上调用isset()函数时调用此方法

参数: @string name 传入对象中的成员属性名作为参数

返回值:有,返回布尔值

魔术方法  __unset

触发时机:使用unset函数删除对象中的成员函数被封装,就需要在类中添加”__unset”方法

作用: 删除对象中的私有成员属性

参数: @string name 传入对象中的成员属性名作为参数

返回值:无

魔术方法__toString()

触发时机: echo 一个对象的时候触发

作用: echo对象的时候返回字符串. 简化操作

参数: 没有

返回值: 必须有,必须是字符串

注意事项: 返回值必须是字符串类型,其他类型不会自动转换

魔术方法__clone()

触发时机:在对象进行clone操作的时候自动触发

作用: clone时修改部分成员属性.

参数:无

返回值:无

注意:clone时使用

clone对象的语法:

变量=clone 对象变量;

魔术方法__call

触发时机:在调用不存在的成员方法时自动触发

作用:1.屏蔽错误,2,自定义方法

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

返回值:可有可无.

注意事项; 该方法可以用于自定义方法,但是不要全部方法都是用call来定义..

魔术方法__autoload()

触发时机:当实例化对象或者类之间有继承关系,但是当前页面中不存在该类的情况下会自动触发该,魔术方法

作用: 自动加载类

参数: 1个  需要的类名

返回值: 没有

注意事项: 一般仅用于自动加载类.


魔术方法  __sleep

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

作用: 用于设定串行化的成员属性.

参数: 没有

返回值:有,数组类型,每个元素都是一个成员属性名

注意事项:必须返回一个数组类型.


魔术方法__wakeup

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

作用: 反串行化的时候自动修改成员属性.

参数: 没有

返回值: 不需要返回值

注意事项:注意逻辑问题,一般只对需要反串行化时修改的属性进行设定.

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢