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