Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-01 05:03:27
original
402 Les gens l'ont consulté

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

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

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

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 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