php 5.5 — ошибка входа в PHP 5 & quot; синтаксическая ошибка, неожиданное ‘?’ & Quot; при использовании ?? оператор

Этот код является частью формы входа в систему, и я хочу убедиться, что поле не пустое. Когда я использую эту строку кода, я получаю следующую ошибку:

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 or else операторы и / или функции.

Вы также можете использовать

$admin['id'] ?: 0;

Но это даст уведомление, когда $admin['id'] не установлен

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]