PHP 魔术方法__set() __get() 方法详解
来源:互联网 发布:windows安装器怎么用 编辑:程序博客网 时间:2024/05/23 00:06
__set() is run when writing data to inaccessible properties.
__get() is utilized for reading data from inaccessible properties.
究竟用中文怎么翻译呢? inaccessible :n. 难达到;难接近;无法理解。
有代码有真相:
<?php error_reporting(E_ALL); class stu{ private $a; private $b = 0; public $c; public $d = 0; //这里的 private 可以用 protected public 替代 private function __get($name) { return 123; } //这里的 private 也可以用 protected public 替代 private function __set($name, $value) { echo "This is set function"; } } $s = new stu(); var_dump($s->a); //output: 123 var_dump($s->b); //output: 123 var_dump($s->c); //output: null var_dump($s->d); //output: 0 var_dump($s->e); //output: 123 $s->a = 3; //output: This is set function $s->c = 3; //no output $s->f = 3; //output: This is set function?>
结果:
如果没有__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 魔术方法__set() __get() 方法详解
- php魔术方法__get和__set详解
- php 魔术方法 __set __get
- 魔术方法:__set、__get
- PHP 魔术方法__set() __get() 方法
- PHP 魔术方法__set() __get() 方法
- PHP 魔术方法__set() __get() 方法
- PHP 魔术方法之__set() __get() 方法
- 详解php的魔术方法__get()和__set()使用介绍
- PHP魔术方法之__set()和__get()
- PHP 魔术方法之"__set()"和"__get"
- 魔术方法__set()和__get()
- PHP魔术方法之__get()和__set()方法
- __set() __get() 方法详解
- php魔术方法汇总之__set(),__get(),__isset (),__unset()
- php魔术方法__set和__get,__isset,__unset的用法
- php魔术方法__SET 和 __GET 应用实例
- php的魔术方法__get()、__set()、__isset()、__unset()的用法
- 关于MSP430F149的ADC转换过程详解
- Smack:概述
- Flex datagrid 中实现combobox联动
- Asp.Net Ajax (2)---ScriptManager
- 技术团队新官上任之高层篇
- PHP 魔术方法__set() __get() 方法详解
- 安装matlab 7.0启动出现错误 runtime error解决办法
- SQL优化--分片思想的运用
- word应用技巧
- linux find 2
- 如何组建一个优秀的实施团队
- sqlplus / as sysdba ORA-012560:TNS:协议适配器错误
- Java虚拟机(JVM)参数配置说明
- arm-linux-gcc交叉编译boost