我有一个类,其中包含一些包含数值的静态公共变量和一个将数值与字符串匹配的关联静态数组。
然而,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);
}
提前感谢
答案 0 :(得分:0)
我认为你不能使用静态变量作为其他静态变量的参考。 你可以使用const。
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 [INTEGER] => 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);