在 PHP 函数中使用函数结果作为默认参数

5
我正在编写一个函数,需要一些日期单位,比如“小时”,“分钟”和“秒”,但我希望将它们作为选项,并使用服务器的当前时间作为默认值。
在PHP的mktime(..)函数中,我注意到他们使用函数调用来获取默认参数值——但是当我尝试这样做时,它不起作用:
PHP的代码看起来像这样: mktime([int $hour = date("H")[,int $minute= date("i")[,等等... 我已经尝试将其复制到我的函数中,完全相同(只有少量参数直到我让它工作):function myFunc([int $hour = date("H")[,int $minute= date("i")]]) { 使用此代码,PHP告诉我Parse error: syntax error, unexpected '[', expecting '&' or T_VARIABLE in ... 我尝试搜索这个问题,但没有找到任何相关内容。我的问题是,我能否实现这个功能,还是我必须将参数指定为null,然后在函数内部检查它们,就像这样:
function myFunc($hour=null,etc...) {
  if($hour==null){$hour=date("H");}
  //etc...
}

除了使用我自己提供的解决方案之外,我想知道这个问题的理由是什么 - 我仍在学习PHP,想要学习最佳实践。

1个回答

9

默认函数参数应该是编译时常量。或者在PHP的情况下,这个值应该在执行脚本之前就为PHP解释器所知。

因此,您不能直接将函数结果用作默认参数。

因此,唯一的方法是使用您已经了解的空默认参数方法。


谢谢,这正是我想知道的。 - user873578

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接