首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP魔术方法之

PHP魔术方法中属性重载方法 __set()与__get()方法及__isset() 与 __unset(),属性重载只能在对象中进行,在静态方法中,这些魔术方法将不会被调用,自定义方法名称时要尽量避免和魔术方法同名方法名称,重载方法都必须被声明为 public。

在给不可访问属性赋值时,__set() 会被调用(如果属性变量为public时__set()方法将不会被调用);在读取不可访问属性赋值时,__get() 会被调用(如果属性变量为public时__get()方法将不会被调用)。

当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用;当对不可访问属性调用 unset() 时,__unset() 会被调用。

1、给私有变量james赋值(或不存在的变量james1)时,将会调用魔术方法__set()

如果没有魔术方法__set()将会抛出错误

如果james变量改成public的话,没有魔术方法也可以正常赋值

2、读取私有变量james值(或不存在的变量时,如:james1)时,将会调用魔术方法__get(),如果没有魔术方法__get()将会报错

3、对私有变量或不存在的变量调用isset和empty时,会触发__isset()魔术方法(PHP 5.1.0之后版本支持)

4、对私有变量或不存在的变量调用unset时,会触发__unset()魔术方法(PHP 5.1.0之后版本支持)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190202G00Y7100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券