首页 新闻 会员 周边 捐助

为什么类的实例对象无法访问该类的静态属性 却可以访问静态方法

0
[待解决问题]

为什么类的实例对象无法访问该类的静态属性 却可以访问静态方法

PHP
清华大学副院长的主页 清华大学副院长 | 初学一级 | 园豆:28
提问于:2015-10-21 10:31
< >
分享
所有回答(4)
0

不能访问静态属性?

顾晓北 | 园豆:10898 (专家六级) | 2015-10-21 10:37

m没看见,是PHP。。。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2015-10-21 10:37

@顾晓北: php不知道为什么么?

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-10-21 10:54

@清华大学副院长: 不知道,没玩过PHP,我只知道.net是可以的,感觉PHP应该也支持才对,因为静态的属性就等于是全局的变量,任何地方都可以访问才对。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2015-10-21 11:30
0

静态属性=静态方法

吴瑞祥 | 园豆:29449 (高人七级) | 2015-10-21 10:37

忘记说了 是php, 静态属性=静态方法啥意思啊?

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-10-21 10:53
0

http://php.net/manual/zh/language.oop5.static.php

上面是官方手册中static关键字的说明

”静态属性不能通过一个类已实例化的对象来访问“ 是 “静态属性不可以由对象通过 -> 操作符来访问。”

下面的例子有两个

print $foo->my_static . "\n";      // Undefined "Property" my_static 

print $foo::$my_static . "\n";

第一个访问静态属性使用的->是非法的

第二个就可以

火魂西 | 园豆:202 (菜鸟二级) | 2015-10-21 11:19

为什么对象不能通过->来访问静态属性 却可以使用->访问静态方法呢?

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-10-21 11:47
0

静态变量或者属性都是通过类名.直接调用变量名或者属性。

猿哥爱码 | 园豆:258 (菜鸟二级) | 2015-11-05 21:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册