2017-08-24 6 views
1

Ce code fait partie du formulaire de connexion et je souhaite m'assurer que le champ n'est pas vide. Quand je suis en utilisant cette ligne de code, je reçois l'erreur suivante:PHP 5 login "erreur de syntaxe, inattendu"? " en utilisant ?? opérateur

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."; 
    } 

Je sais que je reçois l'erreur parce que je travaille avec PHP 5.5.

Merci!

+0

Est-ce que quelqu'un sait comment résoudre ce problème? –

Répondre

2

Oui, vous devez utiliser la déclaration suivante:

(isset($admin['id']) ? $admin['id'] : 0) 

Depuis PHP 5.5 n'a pas le ??null coalesce operator (PHP 7 et plus), vous devez faire l'ancienne sténo.

S'il vous plaît ne pas que je l'ai mis entre parenthèses afin qu'il ne manque pas quand c'est dans si ou sinon des déclarations et/ou des fonctions.

Vous pouvez également utiliser

$admin['id'] ?: 0; 

Mais ce aviserons quand $admin['id'] n'est pas réglé.