PHP魔术方法

本文详细介绍了PHP中的魔术方法,包括它们的作用、调用时机、参数和返回值,以及如何通过这些方法定制和管理对象的行为和生命周期过程。
摘要由CSDN通过智能技术生成

PHP的魔术方法(Magic Methods)是一组特殊的方法,以双下划线__)开头和结束命名的。它们在对象的生命周期中被自动调用,用于执行特定的操作。这些魔术方法可以让开发者更好地控制和定制对象的行为。

函数

作用

调用时机

传递参数

返回值

__construct()

在对象创建之后对其进行初始化操作,如初始化属性、建立与数据库的连接、加载必要的资源等。

创建对象时

自定义

无要求

__destruct()

在对象生命周期结束之前执行一些必要的清理操作,如释放资源、关闭数据库连接、保存对象状态等。

被销毁时或反序列化之后

不可设置

__call()

处理对象中不存在的方法的调用。

调用无法调用的方法

方法名,数组

自定义

__callStatic()

调用一个不存在的静态方法时提供一个统一的处理逻辑使其不会导致错误。

调用无法调用的静态方法

方法名,数组

自定义

__get()

访问一个对象的不存在或不可访问的属性时提供一个统一的处理逻辑使其不会导致错误。

访问无法查看的属性

属性名

自定义

__set()

设置一个对象的不存在或不可设置的属性时提供一个统一的处理逻辑使其不会导致错误。

设置无法设置的属性

属性名,属性值

__isset()

检查一个对象的不存在或不可访问的属性时提供一个统一的处理逻辑使其不会导致错误。

检查无法检查的属性

属性名

布尔值

__unset()

销毁对象中未定义的属性时执行自定义的操作

unset() 函数尝试删除不可删除属性时自动触发

被销毁属性名称

__sleep()

用于指定哪些对象属性需要在序列化时被保存

被序列化之前

返回需要被序列化的属性名的数组

__wakeup()

于指定在对象反序列化时需要执行的操作

反序列化之前

__toString()

于指定在对象被当作字符串调用时需要执行的操作

对象被当作字符串时

不接受

返回一个字符串

__invoke()

在一个对象被作为函数调用时执行相应的操作

作为函数调用时

任意参数

任何类型

__set_state()

方法用于指定对象从字符串形式恢复为 PHP 代码时的行为。它被用于 var_export() 函数所产生的字符串输出的反序列化操作。

对象字符串转化为原始对象后

属性数组

对象的实例

__clone(

在对象被克隆时提供一个修改克隆副本的机会。

使用 clone 克隆对象时

不需要

__autoload()

PHP 引擎尝试实例化一个未定义的类时,动态加载类文件

使用一个未定义的类时

类名

不需要

__debugInfo()

自定义对象在被调试时的输出,可以控制对象在使用 var_dump() 函数时打印的信息。

控制对象在 var_dump() 函数或调试时的信息

关联数组

__construct()

 __destruct()

 __call()

__callStatic()

__get()

__set()

__isset()

 __unset()

__sleep()

__wakeup()

__toString()

__invoke()

__set_state()

__clone()

__autoload()

__debugInfo()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值