无法将参数默认值设置为全局变量?

时间:2011-08-04 14:12:45

标签: php variables

为什么我不能这样做?

function ($var1, $var2 = $GLOBALS['var']){
  ...
}

全局'var'是一个对象

2 个答案:

答案 0 :(得分:13)

您不能将变量用作默认值。 你可以用这个:

function ($var1, $var2 = null){
  if(is_null($var2))
      $var2=$GLOBALS['var'];
  ...
}

答案 1 :(得分:0)

函数的默认参数值必须是常量。

您可以将其设置为虚拟值,但需要null,然后在函数的开头替换值。

function ($var1, $var2 = $GLOBALS['var']){
  if(is_null($var2))
      $var2=$GLOBALS['var'];
}