参数php函数的静态设置值

时间:2016-05-05 04:47:42

标签: php function static

我有一个问题。

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

例如:

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

1 个答案:

答案 0 :(得分:0)

不,你不能这样做。正如它在documentation

中所写的那样
  

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

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

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