参数php函数的静态设置值


static set value for parameter php function

我有个问题。

我可以设置一个静态值作为函数的默认值吗?

例如:

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);
   }
}

不,你不能这样做。正如文件中所写

默认值必须是常量表达式,而不是(例如)变量、类成员或函数调用。

静态变量是类成员,不能用作函数参数的默认值。

我认为你的方法很好,事实上这就是我建议你做的。