21 votes

Essayer d'accéder au décalage du tableau sur la valeur de type bool en PHP 7.4

Je viens de mettre à niveau la version PHP de mon serveur vers PHP 7.4.1 et j'obtiens maintenant cette erreur:

Avis: tentative d'accès au décalage du tableau sur la valeur de type bool dans

 public static function read($id)
{
    $Row = MySQL::query("SELECT `Data` FROM `cb_sessions` WHERE `SessionID` = '$id'", TRUE);
    
    # http://php.net/manual/en/function.session-start.php#120589
    //check to see if $session_data is null before returning (CRITICAL)
    if(is_null($Row['Data']))
    {
        $session_data = '';
    }
    else
    {
        $session_data = $Row['Data'];
    }
    
    return $session_data;
}

Quel est le correctif pour PHP 7.4?

29voto

dılo sürücü Points 1599

Facile avec PHP ?? null opérateur de fusion

 return $Row['Data'] ?? 'default value';

Ou vous pouvez utiliser comme tel

 $Row['Data'] ??= 'default value';
return $Row['Data'];

5voto

raul dev br Points 51

Si votre requête ne renvoie pas de ligne, alors votre variable $ Row sera remplie avec false, afin que vous puissiez tester si la variable a une valeur avant d'essayer d'accéder à n'importe quel index à l'intérieur:

 if($Row){
  if(is_null($Row['Data']))
  {
      $session_data = '';
  }...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X