Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens le message « Erreur fatale : [] Opérateur non pris en charge pour les chaînes » dans PHP 7 ?

Pourquoi est-ce que j'obtiens le message « Erreur fatale : [] Opérateur non pris en charge pour les chaînes » dans PHP 7 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 05:03:27260parcourir

Why Am I Getting the

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!

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
Article précédent:PHP 8.3 bêta publiéArticle suivant:PHP 8.3 bêta publié