知道 static 属性在一次声明后,会存在于内存,效率较高。 如果类中要定义一个开始时间,用静态属性还是用普通属性。
1
crystom 2017-10-09 16:25:33 +08:00
这点时间对代码效率几乎没有影响
|
2
zjsxwc 2017-10-09 16:31:07 +08:00
想怎么用就怎么用呗, 看看 laravel 的 facade,虽然你用起来是类静态属性,但实际背后是实例对象的普通属性。
|
3
GOOD21 2017-10-09 16:53:37 +08:00
最优的话当时是静态的好了。
|
4
GOOD21 2017-10-09 16:55:13 +08:00
如果用普通的,假如你的 php 进程要执行 2 秒钟,那么这个开始时间是会变的。
|
5
Sikoay 2017-10-09 17:16:40 +08:00 via Android
不要乱用 static 变量,基本原则,就算要用,一般我都是用的都是 final static 或者是 get&set 看具体场景吧
|
6
Sikoay 2017-10-09 17:17:59 +08:00 via Android
不然程序中多个地方访问同一个 static 变量,不小心修改了就 GG 了,以后出现了 bug 很难排查
|
7
hantsy 2017-10-10 10:57:57 +08:00
static 最好定义全局不变(+final 整个应用范围只读,比如一些默认参数)或全局共享(可变)的属性。这是 OOP 语言都有的特性。
|
9
hantsy 2017-10-10 21:30:46 +08:00
@jfcherng PHP 现在我好久没写了,我的表述在 Java 中应该不成问题的,https://github.com/hantsy/angularjs-springmvc-sample-boot/blob/master/src/main/java/com/hantsylabs/restexample/springmvc/ApiErrors.java
这些用法在 OOP 语言都是差不多的。 |