PHP函数作为函数的默认参数

时间:2014-01-15 23:14:44

标签: php arguments

我想知道是否有一种更简单的方法可以使用php内置函数作为函数的默认值。

这是我目前的代码:

function custom_date($format = 'm-d-Y', $time = null)
{
    if($format == "d-m-Y") {
        // do something with $time
    }
    return date($format, $time);
}

我想将time()用作$time的默认参数,而不是null,但它不会让我。我知道我可以将time()作为第二个参数传递给custom_date到处调用它,但它在没有第二个参数的地方使用它并且改变它将是一种痛苦。

2 个答案:

答案 0 :(得分:2)

当没有值传递给函数时,只需强制$time等于time()

function custom_date($format = 'm-d-Y', $time = null)
{
    $time = (null == $time) ? time() : $time;
    if($format == "d-m-Y") {
        // do something with $time
    }
    return date($format, $time);
 }

答案 1 :(得分:0)

试试这个。

function custom_date($format = 'm-d-Y', $func = 'time') {
if (function_exists($func)) {
    if ($format == "d-m-Y") {
        // do something with $time
    }
    return date($format, $func());
}elseif(is_numeric($func)){
    //timestamp logic
}}