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 » ?
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!