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

时间:2010-01-24 11:48:18

标签: php arrays const

有人知道为什么这个约束放在PHP类上的技术原因(至少在v5.1x中)?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

常量不能包含可变类型。常数是一个无法改变的“变量”;它不能被赋值,但如果它的值是可变的,那么只需通过改变值来改变就可以

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

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

答案 2 :(得分:0)

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

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

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