php意外';)';解析错误


php unexpected ')' parse error

可能重复:
我可以使用函数在php中返回默认参数吗
在PHP函数中使用函数结果作为默认参数

我正在尝试为一个函数设置默认值。我希望函数$expires的默认值为time() + 604800

我正在尝试

public function set($name,$value,$expires = time()+604800) {
    echo $expires;
    return setcookie($name, $value, $expires);
    }

但我犯了一个错误。

分析错误:语法错误,第38行/var/www/running/8ima/lib/cookies.lib.php中出现意外的"(",应为")"

我该怎么写?

$expires = time()+604800

在函数定义中。

默认值不能是函数的结果,只能是简单值Q参考手册:

默认值必须是常量表达式,而不是(例如)变量、类成员或函数调用。

用途:

public function set($name,$value,$expires = NULL) { 
    if (is_null($expires))
        $expires = time()+604800;
    echo $expires; 
    return setcookie($name, $value, $expires); 
} 

不能在params声明中使用函数调用。

这样做:

public function set($name,$value,$expires = null) {
    if(is_null($expires)) $expires = time()+604800;
    echo $expires;
    return setcookie($name, $value, $expires);
}

试试这个:

public function set($name,$value,$expires = NULL) {
    if(is_null($expires)) {
        $expires = time() + 604800;
    }
    echo $expires;
    return setcookie($name, $value, $expires);
}

您可以进行

public function set($name,$value,$expires = null) {
 if($expires === null){$expires = time()+604800);
 echo $expires;
 return setcookie($name, $value, $expires);
}