PHP 魔术方法__set() __get() 方法
2016-02-24 18:06
591 查看
先看看官方文档的解释
__set() is run when writing data to inaccessible properties.
__get() is utilized for reading data from inaccessible properties.
究竟用中文怎么翻译呢? inaccessible :n. 难达到;难接近;无法理解。
有代码有真相:
结果:
如果没有__get方法,执行 var_dump($s->a) var_dump($s->b) 会有致命的错误
如果没有__get方法,执行 var_dump($s->e) 会有一个notice,提示没有定义属性 $e
总结:
1. 从一个难以访问的属性读取数据的时候 __get() 方法被调用
2. 向一个难以访问的属性赋值的时候 __set() 方法被调用
3. 难以访问包括:(1)私有属性,(2)没有初始化的属性
4. __isset() __unset() 也类似
另外一个我自己的案例:
__set() is run when writing data to inaccessible properties.
__get() is utilized for reading data from inaccessible properties.
究竟用中文怎么翻译呢? inaccessible :n. 难达到;难接近;无法理解。
有代码有真相:
如果没有__get方法,执行 var_dump($s->a) var_dump($s->b) 会有致命的错误
如果没有__get方法,执行 var_dump($s->e) 会有一个notice,提示没有定义属性 $e
总结:
1. 从一个难以访问的属性读取数据的时候 __get() 方法被调用
2. 向一个难以访问的属性赋值的时候 __set() 方法被调用
3. 难以访问包括:(1)私有属性,(2)没有初始化的属性
4. __isset() __unset() 也类似
另外一个我自己的案例:
相关文章推荐
- 打印php信息的方法
- phpmailer 中文使用说明(简易版)
- PHP之克隆clone
- PHP延迟静态绑定
- YII2配置多语言
- php计算两个日期相差 年 月 日
- php 中isset 和 empty对于0的判断的区别
- [PHP源码阅读]strlen函数
- [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
- php-fpm
- 【译】PHP的变量实现(给PHP开发者的PHP源码-第三部分)
- PHP instanceof 的使用
- php 魔法方法
- windows下安装rabbitmq的php扩展amqp
- PHP之自动加载
- PHP中For、While、Foreach循环的比较
- PHPStorm实用快捷键整理
- php将文件转换成二进制输出[转]
- PHP的几个特性
- PHP中“简单工厂模式”实例讲解