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

时间:2011-09-15 17:35:25

标签: php

我正在编写一个需要一些日期单位的功能,例如"小时","分钟"和"第二"但是我想做出这些选项,服务器的当前时间用作默认值。

在PHP的mktime(..)中,我注意到他们使用函数调用来获取默认参数值 - 但是当我尝试这个时,它不起作用:

PHP似乎是这样的: mktime([int $hour = date("H")[,int $minute= date("i")[,etc...

我已经尝试将其复制到我的函数中,完全相同(只有在我开始工作之前没有那么多参数):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 个答案:

答案 0 :(得分:9)

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

因此,您无法直接将函数结果用作默认参数

因此,唯一的方法是您已经知道的null默认参数方法。