Php неожиданная ')' ошибка анализа
Возможный дубликат:
Можно ли использовать функцию для возврата параметра по умолчанию в php?
Использование результата функции в качестве аргумента по умолчанию в функции 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
Как мне написать?
Ответы
Ответ 1
$expires = time()+604800
в определении функции.
Значение по умолчанию не может быть результатом функции, только простое значение
Котировка из руководство:
Значение по умолчанию должно быть константным выражением, а не (например) переменная, член класса или вызов функции.
Использование:
public function set($name,$value,$expires = NULL) {
if (is_null($expires))
$expires = time()+604800;
echo $expires;
return setcookie($name, $value, $expires);
}
Ответ 2
Вы не можете использовать вызов функции в объявлении params.
Сделайте это так:
public function set($name,$value,$expires = null) {
if(is_null($expires)) $expires = time()+604800;
echo $expires;
return setcookie($name, $value, $expires);
}
Ответ 3
попробуйте следующее:
public function set($name,$value,$expires = NULL) {
if(is_null($expires)) {
$expires = time() + 604800;
}
echo $expires;
return setcookie($name, $value, $expires);
}
Ответ 4
Вы могли бы сделать
public function set($name,$value,$expires = null) {
if($expires === null){$expires = time()+604800);
echo $expires;
return setcookie($name, $value, $expires);
}