魔术方法

__clone()

1.当使用clone的时候触发

2.需要定义在对应的类内

3.必须是public的权限

11005865-ade3bf0c83a6032f.png

__get($var)

当访问不存在/不可访问的参数的时候调用,必须是public

__set($key,$var)

当设置不存在/不可访问的参数的时候调用,必须是public

__call()

调用不存在/不可访问的方法时会触发,这个不存在的定义有:1.类内根本就没有定义 2.类内有定义对应的方法,但是权限不够.这些都会触发

11005865-1fd87b4ed623d450.png

 

11005865-62d17163de30d4b6.png

__toString()

echo一个对象的时候调用.

__sleep()

serialize一个对象的时候调用.

作用:使用__sleep的目的是提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。----PHP: 魔术函数 __sleep 和 __wakeup - Manual

注意:(总之记住:serialize是为了序列化一个对象保存,但是如果你__sleep返回的是和对象没关的,那这个方法就没有作用了,同时序列化的是对象,不是类(我的理解就是类是没有作用的).所以你对对象的操作会在序列化的时候保存下来)

1.一定要返回一个数组,不然会报错 " __sleep should return an array only containing the names of instance-variables to serialize"

2. 一定要返回对象的属性,否则__sleep should return an array only containing the names of instance-variables to serialize.

3.一定要返回的数组中的val一定要是属性,不然报错Notice: serialize(): "1" returned as member variable from __sleep() but does not exist in

想深入了解的可以查看PHP: 魔术方法 - Manual

11005865-cb8d933b60dc59e7.png

案例

__wakeup()

调用unserialize()的时候触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值