Comment résoudre l’erreur Fatal error: Uncaught Error: [] operator not supported for strings

php7

Cette erreur survient à partir de php 7.1 :

Fatal error: Uncaught Error: [] operator not supported for strings

Cette erreur survient en fait lorsque vous avez initialisé une variable avec un certain type, comme par exemple une chaine (string) et qu’ensuite vous essayez d’y ajouter une case d’un tableau. Typiquement ce code suivant provoquera l’erreur.

$foo = 'foo';
$foo[] = 'bar'; // ERROR!

Le souci provient lorsqu’on essaye de push une valeur dans un tableau dans une variable qui n’a pas été définie comme un tableau, qu’il s’agisse d’une chaine, d’un entier, d’une classe, etc. Tous ces exemples ci-dessous retourneront une erreur

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

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

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';

Trouver la ligne qui provoque l’erreur

Grâce au log d’erreur de votre site ou application, vous obtiendrez directement la ligne provoquant le souci. Dans l’exemple suivant, il s’agit d’un fichier d’un thème WordPress, et l’erreur se trouve à la ligne 108[php7:error] PHP Fatal error: Uncaught Error: [] operator not supported for strings in /functions.php:108

Initialiser la variable avec un tableau array

Allez dans le fichier à la ligne provoquant l’erreur et déterminez quelle est la variable posant souci. une fois que vous l’avez trouvé, relisez votre code pour trouver l’endroit où vous initialisez cette variable.Une fois que vous avez trouvez, il faut donc initialiser votre variable avec un tableau, vous pouvez utiliser l’opérateur []

Variante : initialiser la variable avec array()

Vous pouvez aussi initialiser votre variable directement avec un array, cette solution alternative fonctionne également

Picture of mike

mike

Chef de projet web, Mike assure la réussite de projets digitaux depuis 2011. Son but est d'aider les webmasters et les freelances à tirer le meilleur des outils comme WordPress, WooCommerce et Elementor. Sur ce blog il partage son expérience, ses astuces et les pépites dénichées sur le web. Côté pro, Mike adore apprendre de nouveaux trucs et faire progresser les autres, et côté perso les afters, faire des shoots de baskets et les films d'horreur. La légende raconte qu'avec un mojito il vous accordera +4xp de confiance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Thématiques

Vous recherchez des astuces dans un secteur donné ? Vous pouvez accéder directement à la catégorie qui vous intéresse !