Maison >développement back-end >tutoriel php >Pourquoi PHP 7.4 lance-t-il « Essayer d'accéder au décalage du tableau sur la valeur de type Bool » ?

Pourquoi PHP 7.4 lance-t-il « Essayer d'accéder au décalage du tableau sur la valeur de type Bool » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 01:46:10731parcourir

Why Does PHP 7.4 Throw

Comprendre l'erreur : accès au décalage de tableau sur booléen

PHP 7.4 a introduit une modification dans la vérification de type stricte, conduisant à l'erreur « Essayer de accédez au décalage du tableau sur la valeur de type bool." Cette erreur se produit lorsque vous tentez d'accéder à un élément d'un tableau en utilisant la syntaxe de tableau (crochets) sur une valeur de type booléen.

Le correctif PHP 7.4

Dans l'exemple fourni, l'erreur est générée car $Row['Data'] renvoie une valeur booléenne lorsque le résultat de la requête est vide. Pour résoudre ce problème, vous pouvez utiliser l'opérateur de fusion nul (??) pour vérifier si $Row['Data'] est nul et lui attribuer une valeur par défaut si c'est le cas. Cela garantit que vous pouvez toujours accéder à l'élément du tableau sans rencontrer l'erreur.

Voici une version mise à jour du code utilisant l'opérateur de fusion nul :

public static function read($id)
{
    $Row = MySQL::query("SELECT `Data` FROM `cb_sessions` WHERE `SessionID` = '$id'", TRUE);

    $session_data = $Row['Data'] ?? '';

    return $session_data;
}

Vous pouvez également utiliser l'opérateur null opérateur de fusion pour attribuer directement une valeur par défaut à $Row['Data'] :

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

Cela définira $Row['Data'] à 'valeur par défaut' si elle est nulle, puis renvoie sa valeur comme d'habitude. Les deux méthodes empêchent efficacement l'erreur en garantissant que $Row['Data'] est toujours évalué à une valeur de décalage de tableau valide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn