Bonsoir à vous, j'essaye de réaliser une petite fonction pour afficher l'icon et le nom du grade mais j'ai une erreur

Notice: Trying to get property of non-object

<?= grade(htmlspecialchars($_SESSION['auth']->rank)); ?>
function grade($type){
  switch($type){
    case 0:
      return $grade = array("grade" => "Bannis", "icon" => "ban");
      break;
    case 1:
      return $grade = array("grade" => "Membre", "icon" => "user");
      break;
    case 2:
      return $grade = array("grade" => "Modérateur", "icon" => "star");
      break;
    case 3:
      return $grade = array("grade" => "Administrateur", "icon" => "bullhorn");
      break;
    case 4:
      return $grade = array("grade" => "CEO", "icon" => "bolt");
      break;
  }
}

merci

10 réponses


Lartak
Réponse acceptée

Bonsoir.
Es-tu sur pour ton :

$_SESSION['auth']->rank

Ce ne serait pas plutôt :

$_SESSION['auth']['rank']

Car le message d'erreur signifie que tu essais d'accéder à une propriété d'un élément qui n'est pas un objet.

Lartak
Réponse acceptée

Ok, l'erreur vient surtout du htmlspecialchars, qui attend une chaine de type string, et non un tableau.

Lartak
Réponse acceptée

C'est une erreur que tu as sur deux lignes du même fichier (60 et 63).

Carouge10
Réponse acceptée

$type est un int ou un string dans votre fonction grade ?

Yubo
Auteur
Réponse acceptée

Problème résolu

Yubo
Auteur

Bonsoir,
Non, du tout en gros $_SESSION['auth']->rank dit sois, 0,1,2,3 ou 4. C'est juste pour le passer en param dans ma fonction.

Yubo
Auteur

Screen du code et de l'erreur

Yubo
Auteur

ça me remet une seconde erreur

Yubo
Auteur

Tableau vide maintenant :/ Il ne me retourne rien

Yubo
Auteur

mon type est un int