const 和 static 变量有什么区别?
如果我有一个类并且想要一些静态变量,那么声明它们的正确方法是什么?
例如
Foo 类{
公共静态$var1
公共静态$var2
公共静态$var3
......
}
或
Foo 类{
常量 $var1
常量 $var2
const $var3
......
}
两种方式都让我使用 Foo::var1。但我不太清楚哪种方法是正确的和/或使用一种或另一种方法是否有任何冒险。
If I have a class and want to have some static vars, which would be the correct way to declare them?
For example
class Foo{
public static $var1
public static $var2
public static $var3
......
}
OR
class Foo{
const $var1
const $var2
const $var3
......
}
both ways let me use Foo::var1. But I dont know well which is the correct way and/or if there is any adventage using one way or the other.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
const
变量无法修改。static
可以。使用正确的方法来完成您想要做的事情。const
variables can't be modified. Thestatic
ones can. Use the right one for what you're trying to do.class Foo{const $var1....}
是一个语法错误(在const
之后不需要$
)class Foo{const $var1....}
is a syntax error (don't need$
afterconst
)在传统编码标准中,我们将常量命名为
Foo:: CONST1
全部大写,名称中不包含任何$
。所以你不需要混淆常量和变量。正如其他人所指出的,您定义 类常量 的值一次,并且您无法在给定 PHP 请求的剩余时间内更改该值。
而您可以多次更改 静态类变量 的值当你需要的时候。
In conventional coding standards we name consts like
Foo::CONST1
in all caps without any$
in the name. So you don't need to be confused between consts and variables.As others have noted, you define the value of a class constant once, and you can't change that value during the remainder of a given PHP request.
Whereas you can change the value of a static class variable as many times as you need to.