Bonjour ,
je m'arrache les cheveux et je ne trouve pas la cause de mon problème.
Mon code doit migrer d'un serveur php 5.6 vers un autre serveur en php 7
A priori, ça devait bien se passer.
Sauf que j'ai une erreur du typeet que les résultats ne correspondant plus à ce qui est attendu, plus rien ne s'affiche.Notice: Array to string conversion
Pour résumer le contexte, je fais un select dans mysql qui me renvoi un tableau qui me permettra de construire le menu utilisateur.
Les champs renvoient le libellé, le lien, les sous-menus éventuels , etc...
chaque enregistrement reçu est mis dans un tableau. Ce tableau est ajouté dans un tableau "conteneur" qui sera renvoyé par ma classe au programme. A charge pour le programme de le lire et de faire les affichages qui vont bien.
Le bout de code qui fait ça est le suivant (il marche très bien en php 5.6)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 foreach ($requete->fetchAll() as $result) { $liste[$result[self::FIELD_ID]] = array('Titre' => $result[self::FIELD_TITRE], 'LinkUrl' => $result[self::FIELD_LINK], 'ImageUrl' => $result[self::FIELD_IMAGE], 'Texte' => $result[self::FIELD_TEXTE], 'ordre' => $result[self::FIELD_ORDRE], 'parent' => $result[self::FIELD_PARENT], 'Button' => $result[self::FIELD_BUTTON], 'Id' => $result[self::FIELD_ID] ); } return $liste;
si je vais un
En php 5.6 j'aurai une URL
Code : Sélectionner tout - Visualiser dans une fenêtre à part var_dump($liste[1][self::FIELD_LINK]);
En php 7 il m'affiche : string(1) "A"
A noter qu'il fait ça pour tous les FIELD_... , j'ai systématiquement string(1) "A"
Quelqu'un peut me pointer mon erreur et me glisser la syntaxe correcte en version 7 ?
Merci d'avance.
Partager