PHP 5 логин "синтаксическая ошибка, неожиданная '?' "во время использования?? оператор
Этот код является частью формы входа в систему, и я хочу убедиться, что поле не пустое. Когда я использую эту строку кода, я получаю следующую ошибку:
syntax error, unexpected '?'
if(is_blank($admin['username'])) {
$errors[] = "Username cannot be blank.";
} elseif (!has_length($admin['username'], array('min' => 8, 'max' => 255))) {
$errors[] = "Username must be between 8 and 255 characters.";
} elseif (!has_unique_username($admin['username'], $admin['id'] ?? 0)) {
$errors[] = "Username not allowed. Try another.";
}
Я знаю, что получаю ошибку, потому что я работаю с PHP 5.5.
Спасибо!
1 ответ
Да, вам нужно использовать следующее утверждение:
(isset($admin['id']) ? $admin['id'] : 0 )
Поскольку PHP 5.5 не имеет ??
null coalesce operator
(PHP 7 и выше) вам нужно сделать старомодную короткую руку.
Пожалуйста, помните, что я поместил его в квадратные скобки, чтобы он не потерпел неудачу, если он находится внутри операторов if или else, и / или функций.
Вы также можете использовать
$admin['id'] ?: 0;
Но это даст уведомление, когда $admin['id']
не установлен