PHP class 中静态属性和普通属性,分别在什么时候用到?

2017-10-09 16:24:50 +08:00
 herozw

知道 static 属性在一次声明后,会存在于内存,效率较高。 如果类中要定义一个开始时间,用静态属性还是用普通属性。

2391 次点击
所在节点    PHP
9 条回复
crystom
2017-10-09 16:25:33 +08:00
这点时间对代码效率几乎没有影响
zjsxwc
2017-10-09 16:31:07 +08:00
想怎么用就怎么用呗, 看看 laravel 的 facade,虽然你用起来是类静态属性,但实际背后是实例对象的普通属性。
GOOD21
2017-10-09 16:53:37 +08:00
最优的话当时是静态的好了。
GOOD21
2017-10-09 16:55:13 +08:00
如果用普通的,假如你的 php 进程要执行 2 秒钟,那么这个开始时间是会变的。
Sikoay
2017-10-09 17:16:40 +08:00
不要乱用 static 变量,基本原则,就算要用,一般我都是用的都是 final static 或者是 get&set 看具体场景吧
Sikoay
2017-10-09 17:17:59 +08:00
不然程序中多个地方访问同一个 static 变量,不小心修改了就 GG 了,以后出现了 bug 很难排查
hantsy
2017-10-10 10:57:57 +08:00
static 最好定义全局不变(+final 整个应用范围只读,比如一些默认参数)或全局共享(可变)的属性。这是 OOP 语言都有的特性。
jfcherng
2017-10-10 13:41:37 +08:00
@hantsy final 只能用在 class 和 method 上吧?
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 语言都是差不多的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/396204

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX