【问题标题】:Using function result as a default argument in PHP function在 PHP 函数中使用函数结果作为默认参数
【发布时间】:2011-11-18 02:30:59
【问题描述】:

我正在编写一个需要一些日期单位的函数,例如“小时”、“分钟”和“秒”,但我想设置这些选项,并且默认使用服务器的当前时间。

在 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 并想学习最佳实践。

【问题讨论】:

    标签: php


    【解决方案1】:

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

    因此你不能直接使用函数结果作为默认参数

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

    【讨论】:

    • 谢谢,正是我想知道的。
    猜你喜欢
    • 2015-03-31
    • 2012-02-03
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2019-09-11
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多