PHP 中类常量不能是数组的技术原因是什么?

发布于 2024-08-18 19:09:20 字数 45 浏览 6 评论 0原文

有人知道为什么对 PHP 类施加此限制的技术原因(至少在 v5.1x 中)?

Anybody knows the technical reason why this constraint is placed on PHP classes (at least in v5.1x)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

梦醒时光 2024-08-25 19:09:20

数组是可变的——你可以修改它们。您可以改用静态属性。

Arrays are variable - you can modify them. You can use a static property instead.

浮光之海 2024-08-25 19:09:20

常量不能包含可变类型。常量是不能改变的“变量”;它不能被分配,但如果它的值是可变的,那么它可以通过改变值来改变:

class SomeClass
{
    public const $array = array(0 => 'foo', 1 => 'bar');

    public static function someFunction()
    {
        self::$array[0] = 'baz'; // SomeClass::$array has now changed.
    }
}

Constants cannot contain mutable types. A constant is a "variable" that cannot be changed; it cannot be assigned to, but if its value were mutable, then it could be changed just by mutating the value:

class SomeClass
{
    public const $array = array(0 => 'foo', 1 => 'bar');

    public static function someFunction()
    {
        self::$array[0] = 'baz'; // SomeClass::$array has now changed.
    }
}
断舍离 2024-08-25 19:09:20

不完全知道为什么,但是您可以初始化静态数组变量:

class myClass {
   public static $arr = Array ('foo', 'bar'); 
}

请注意,数组是变量,因此您可以在外部修改它们......

Don't exactly know why, but you can initialize static array variable:

class myClass {
   public static $arr = Array ('foo', 'bar'); 
}

Note that arrays are variables, so you can modify them outside...

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