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
Libérer: 2024-11-27 01:46:10
original
778 Les gens l'ont consulté

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;
}
Copier après la connexion

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';
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal