php непредвиденная ')' ошибка разбора

Возможный дубликат:
Могу ли я использовать функцию для возврата параметров по умолчанию в php?
Использование функции result в качестве аргумента по умолчанию в функции PHP

Я пытаюсь установить значение по умолчанию для функции. Я хочу функцию $expires значение по умолчанию time() + 604800,

я стараюсь

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

Но я получаю ошибку.

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный '(', ожидающий ')' в /var/www/running/8ima/lib/cookies.lib.php в строке 38

Как мне это написать?

4 ответа

Решение
$expires = time()+604800

в определении функции.

Значение по умолчанию не может быть результатом функции, только простое значение. Цитирование из руководства:

Значением по умолчанию должно быть константное выражение, а не (например) переменная, член класса или вызов функции.

Использование:

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);
}

Попробуй это:

public function set($name,$value,$expires = NULL) {
    if(is_null($expires)) {
        $expires = time() + 604800;
    }
    echo $expires;
    return setcookie($name, $value, $expires);
}
Другие вопросы по тегам