我有个问题。
我可以设置一个静态值作为函数的默认值吗?
例如:
class unameClass{
protected static $var1 = array('A', 'B', 'C', 'D');
public static function get($var1 = static::$var1)
{
return static::randomElement($var1);
}
}
但这是错误的。我目前正在这样做:
class unameClass{
protected static $var1 = array('A', 'B', 'C', 'D');
public static function get($var1 = null)
{
$var1 = is_null($var1) ? static::$var1 : $var1;
return static::randomElement($var1);
}
}
不,你不能这样做。正如文件中所写
默认值必须是常量表达式,而不是(例如)变量、类成员或函数调用。
静态变量是类成员,不能用作函数参数的默认值。
我认为你的方法很好,事实上这就是我建议你做的。