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