我所理解的,不论是静态还是常规的类, 都可以使用 ::
常规类使用:: 里面不能用$this
但是还是不明白啥时候用静态?
意思是如果我这个类里面没有用到$this 都应该使用静态吗?
1
U7Q5tLAex2FI0o0g 2017 年 7 月 5 日 虽然楼主隐藏了他创建的主题: https://www.v2ex.com/member/hoythan
但整个 PHP 节点里都是些什么啊: https://www.v2ex.com/go/php 最基本的,楼主可以去看看官方手册么? |
2
tabris17 2017 年 7 月 5 日 什么叫静态类?楼主你明白自己在说什么吗?
|
3
aprikyblue 2017 年 7 月 5 日
|
4
fyibmsd 2017 年 7 月 5 日 RTFM
|
8
zerofiny 2017 年 7 月 5 日 via Android
一个不用实例化就能调用,一个需要实例化才能调用
|
10
johnlui 2017 年 7 月 5 日
建议楼主去 segmentfault 问基础知识
|
11
joeke 2017 年 7 月 5 日
这个就不用在这里问了吧,查一下手册就出来了
|
12
U7Q5tLAex2FI0o0g 2017 年 7 月 5 日 |
13
bombless 2017 年 7 月 5 日
有些人觉得不应该有静态方法
我的习惯是不用$this 的情况下都用静态静态方法 |
14
we3613040 2017 年 7 月 5 日
静态方法是为了引入 function 的,而静态不能用 this,是因为他们在不同的内存里,内存模型那块,所以不能调用
|
15
Keson 2017 年 7 月 6 日
1、不论是静态还是常规的类, 都可以使用 ::
这个是 php 我觉得误人子弟的地方,事实上静态方法用::,非静态方法用$this->。只是早期 php 不知道为什么可以混用。一些 IDE ( phpstorm )如果用错了的话会有黄色提示警告的。但是还是可以运行的。 2、常规类使用:: 里面不能用$this 应该是问“静态类使用:: 里面不能用$this ”?因为静态方法其实是只有一个副本。不会想非静态类一样可以 new 多个实例,所以在静态方法里面只能调用本类的其他静态资源(静态方法或静态变量等)。 3、但是还是不明白啥时候用静态?意思是如果我这个类里面没有用到$this 都应该使用静态吗? 跟第二个问题一样,建议楼主可以看看静态类、静态方法、静态变量等知识就懂了。 |
16
TIGERB 2017 年 7 月 6 日
静态只能维护全局的状态,普通类的对象可以分别维护自己的状态
|
17
changwei 2017 年 7 月 6 日
看了一下整个 PHP 节点一片火红的景象啊,全是楼主头像。。。
|