L'erreur Cannot use string offset as an array en changeant de version PHP
Publié par The Troll le 23 11 2023

Petit billet sur l'erreur php 7.3 Cannot use string offset as an array.

Oui, vous avez bien lu ; php 7.3 Cannot use string offset as an array

je le pose là pour permettre de trouver plus facilement la réponse, si tenté que je suis un poil référencé. Pour le faire court, j'ai une application web assez importante qui fabrique des pdf avec latex à partir des éléments d'une base de données "métier". Par un coquin de sort, j'ai du réinstaller mo application sur un nouveau serveur et une chose en amenant une autre, je suis passé de php 5 et quelques à PHP 7.3 et mon appli ne fonctionnait plus.

l'erreur que j'avais était assez cryptique : Fatal error: Uncaught Error: Cannot use string offset as an array

cela tombe sur cette ligne :

#pas ok
$mon_tableau['un_indice']['un_autre_indice']['un_troisieme_indice']='toto';

Cela fait longtemps que je n'avais pas écrit de code et celui-ci date de... quelques années. je fais des recherches et ne tombe sur trop rien.. Je fais des tests de débogage et si j'utilise

#ok
$mon_tableau['un_indice']['un_autre_indice']='toto';

je n'ai plus d'erreur... Truc de malade. cela passe sans souci sur mon php 5 mais coince sur php 7.3. Après de la recherche sur le net (tous les moteurs) je tombe sur un bonhomme que explique que cette erreur arrive si on ne déclare pas

$mon_tableau=array();

voila qui est réglé après des heures de polissage de crane lisse... fini le Fatal error: Uncaught Error: Cannot use string offset as an array , il suffit de délcarer son tableau avant de l'utiliser. je ne sai pas pourquoi je ne l'avais pas fait avant, c'est le seul qui était non déclaré, et comme cela passait...

donc si vous aussi vous avez cette erreur Fatal error: Uncaught Error: Cannot use string offset as an array regardez si vous avez bien déclaré le tableau en question.

ps : oui il y a des répétition pour augmenter les chance qu'une personne cherchant cette erreur tombe plus rapidement ici, lui faisant gagner un temps assez précieux.

À tout seigneur tout honneur, j'ai trouvé la réponse sur cette page : https://stackoverflow.com/questions/1873970/cannot-use-string-offset-as-an-array-in-php

Debian linux - Serveurs - Commentez