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