Dépannage du problème « Erreur fatale : [] Opérateur non pris en charge pour les chaînes »
Cette erreur fatale se produit lors de la tentative d'utilisation de la syntaxe courte pour les opérations de poussée de tableau sur une variable non-tableau, généralement une chaîne. En examinant l'extrait de code fourni, il est probable qu'une ou plusieurs variables ($name, $date, $text, $date2) aient été initialement définies comme des chaînes.
Pour corriger ce problème, modifiez les affectations dans le boucle pour attribuer directement des valeurs de ligne à ces variables sans créer de tableaux :
<code class="php">$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2'];</code>
PHP 7 a implémenté des règles plus strictes pour la syntaxe push de tableau avec des indices vides. Il est désormais interdit aux variables qui étaient auparavant définies comme des non-tableaux (chaînes, nombres, objets) d'utiliser cette syntaxe, conduisant à l'erreur susmentionnée.
Pour souligner, ces opérations restent valables en PHP 7 :
<code class="php">unset($arrayWithEmptyIndices); $arrayWithEmptyIndices[] = 'value'; // Creates an array and adds an entry $array = []; // Creates an array $array[] = 'value'; // Pushes an entry</code>
Cependant, les tentatives d'utilisation de la syntaxe push de tableau sur des variables déclarées sous forme de chaînes, de nombres ou d'objets entraîneront une erreur fatale :
<code class="php">$stringAsVariable = ''; $stringAsVariable[] = 'value'; $numberAsVariable = 1; $numberAsVariable[] = 'value'; $objectAsVariable = new stdclass(); $objectAsVariable[] = 'value';</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!