PHP 关联数组与静态变量键或值错误


PHP associative array with static vars keys or values ERROR

我有一个类,其中包含一些包含数值的静态公共变量和一个将数值与字符串匹配的关联静态数组。

但是,php不允许我这样做,它说:解析错误:语法错误、意外的"$TYPE_DATE"(T_VARIABLE)、预期标识符 (T_STRING)

以下是简化的代码:

class myclass
{
    public static $TYPE_DATE = 0b00010010;
    public static $TYPE_INT = 0b01010001;
    private static $types = array( "DATE"=>myclass::$TYPE_DATE, "INTEGER"=>myclass::$TYPE_INT);
}

提前感谢

我认为您不能使用静态变量作为其他静态变量的参考。你可以用康斯特来做到这一点。

class myclass
{
    const TYPE_DATE = 0b00010010;
    const TYPE_INT = 0b01010001;
    private static $types = array( "DATE"=>self::TYPE_DATE, "INTEGER"=>self::TYPE_INT);
    public function __construct() {
        print_r(self::$types);
    }
}
$class= new myclass();

输出为:数组 ( [日期] => 18 [整数] => 81 )

另一种方法是通过调用 init 函数来设置$types

class myclass
{
    private static $TYPE_DATE = 0b00010010;
    private static $TYPE_INT = 0b01010001;
    public static $types;
    public static function init() {
        self::$types = array( "DATE"=>self::$TYPE_DATE, "INTEGER"=>self::$TYPE_INT);
    }
}
myclass::init();
print_r(myclass::$types);