Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens l'erreur « Erreur fatale : opérateur [] non pris en charge pour les chaînes » dans PHP 7 et comment puis-je la corriger ?

Pourquoi est-ce que j'obtiens l'erreur « Erreur fatale : opérateur [] non pris en charge pour les chaînes » dans PHP 7 et comment puis-je la corriger ?

Susan Sarandon
Libérer: 2024-12-07 18:36:14
original
923 Les gens l'ont consulté

Why am I getting the

Comprendre l'erreur : "Erreur fatale : opérateur [] non pris en charge pour les chaînes"

Lorsque vous essayez de modifier des données dans une base de données, vous a rencontré l'erreur "[] opérateur non pris en charge pour les chaînes". Cette erreur indique une tentative d'utilisation de la syntaxe push de tableau court sur une chaîne.

Cause première :

En examinant votre code, il semble que vous en ayez initialisé un ou plusieurs. des variables ($name, $date, $text, $date2) sous forme de chaînes. Cela ressort clairement de l'affectation des valeurs $row[''], qui sont des valeurs de chaîne.

Solution :

Pour résoudre ce problème, vous devez modifier les affectations à :

$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];
Copier après la connexion

Cela garantira que ces variables sont traitées comme des chaînes, plutôt que tableaux.

Comprendre la rigueur de PHP 7 :

PHP 7 a des contrôles plus stricts pour l'utilisation de la syntaxe push de tableau à index vide. Il générera désormais une erreur si vous essayez de l'utiliser sur des variables qui ne sont pas des tableaux.

Exemples de syntaxe push de tableau à index vide valide en PHP 7 :

$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds an entry

$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry
Copier après la connexion

Cependant, le ce qui suit entraînera une erreur fatale :

$declaredAsString = '';
$declaredAsString[] = 'value';

$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';
Copier après la connexion

En suivant ces directives, vous pouvez éviter cette erreur et assurer le bon fonctionnement de la modification de votre base de données code.

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