Этот код является частью формы входа в систему, и я хочу убедиться, что поле не пустое. Когда я использую эту строку кода, я получаю следующую ошибку:
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.
Спасибо!
Да, вам нужно использовать следующее утверждение:
(isset($admin['id']) ? $admin['id'] : 0 )
поскольку PHP 5.5 не имеет ??
null coalesce operator
(PHP 7 и выше) вам нужно сделать старомодную короткую руку.
Пожалуйста, не то, чтобы я поместил его в скобки, чтобы он не потерпел неудачу, когда он находится внутри
if or else операторы и / или функции.
Вы также можете использовать
$admin['id'] ?: 0;
Но это даст уведомление, когда $admin['id']
не установлен
Других решений пока нет …