类的成员变量和 属性
来源:互联网 发布:骑士引流软件 编辑:程序博客网 时间:2024/06/09 15:56
本文章有误,请不要阅读。
1.
对于public 定义的类的变量称为成员变量,譬如:
public $age;
2.
通过 get开头的方法定义的为属性,譬如:
public function getAge() {}public function setAge($age) {}
他们都可以通过$ob->age 访问
3 优先级
如果在一个类中,定义了
class ob{ public $age =10; public function getAge(){ return 18; } public function __get($name) { return 22 ; }}
如果
$ob = new ob();$ob->age
1.返回的是public 定义的成员变量, 10
2.如果去掉public $age的定义,那么返回的是魔术方法 22
因为魔术方法对应的是,当某些成员变量不存在的时候,就会访问魔术方法__get
3.如果去掉 __get的方法的定义,才会访问对象的属性,那么返回的是 18
4.上面说的是他们的优先级,下面说的是一些看着有点离谱的事情。
看似是一个赋值的行为,你感觉是给对象的成员变量变量赋值,其实执行的是一个方法,
严格的说类的属性不是一个变量,而是一个方法
但是在代码中的定义,你看不出来赋值的时候是成员变量还是类的属性,因此,在赋值的时候就发生了一些你看不到的事情,呵呵,譬如:
class ob{public $bbb = 1;public function setAaaaa(){$this->bbb = 9; }public function getAaaaa(){return 199;}}
如果上面的代码是封装的,我看是在其他的类中对ob操作
$ob = new $ob()echo $ob->aaaaa;echo $ob->bbb;$ob->aaaaa = 10;echo $ob->aaaaa;echo $ob->bbb;
结果:
19911999
也就是说我们在给属性aaaaa 赋值,但是函数里面执行的是成员变量bbb的改变,所以这样的代码,就会带来困惑。
0 0
- 类的成员变量和 属性
- 成员变量和属性
- 成员变量 和 属性
- 成员变量和属性
- C# 类中属性和成员变量的使用
- C# 类中属性和成员变量的使用
- IOS中"声明属性"和类成员变量的关系
- C# 类中属性和成员变量的使用
- C#属性和成员变量的区别?
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别
- OC 成员变量和属性的区别
- C#属性和成员变量的区别?
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别
- 关于属性和成员变量的问题
- iOS 成员变量和属性的区别
- 平铺图片、纹理
- Swift
- 杭电1046
- 对view事件分发的理解
- ACM JAVA+C常用方法模板
- 类的成员变量和 属性
- Linux虚拟机J2EE环境搭建 2、基础知识 解压/安装软件/root密码
- 用WMI获取磁盘硬件信息
- 例说android静态JNI调用C/C++代码——HelloWorld
- Android 编程下字库的使用
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- HDU 1429胜利大逃亡(续) 【bfs+状压】
- iOS应用安全防护框架概述
- MTK网关方案中 Boa Web Server 分析