const 和 static 变量有什么区别?

发布于 2024-09-17 21:16:00 字数 454 浏览 7 评论 0原文

如果我有一个类并且想要一些静态变量,那么声明它们的正确方法是什么?

例如

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小耗子 2024-09-24 21:16:00

const 变量无法修改。 static 可以。使用正确的方法来完成您想要做的事情。

const variables can't be modified. The static ones can. Use the right one for what you're trying to do.

枫以 2024-09-24 21:16:00

class Foo{const $var1....} 是一个语法错误(在 const 之后不需要 $

class Foo{const $var1....} is a syntax error (don't need $ after const)

美人如玉 2024-09-24 21:16:00

传统编码标准中,我们将常量命名为 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文