我有一个问题。
我可以设置静态值作为函数的默认值吗?
例如:
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);
}
}
答案 0 :(得分:0)
不,你不能这样做。正如它在documentation
中所写的那样默认值必须是常量表达式,而不是(例如)a 变量,类成员或函数调用。
静态变量是一个类成员,不能用作函数参数的默认值。
我认为你的方法很好,事实上这就是我要你做的建议。