有人知道为什么这个约束放在PHP类上的技术原因(至少在v5.1x中)?
答案 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');
}
请注意,数组是变量,因此您可以在...之外修改它们。