Fatal error: Cannot use string offset as an array in ... = ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fatal error: Cannot use string offset as an array in ... = ?

par albat » 17 févr. 2007, 01:44

Modération :
jerkeve, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par jerk » 17 févr. 2007, 01:36

merci a vous ca marche !!! :D

par Hubert Roksor » 05 janv. 2007, 18:22

Je n'ai pas trop suivi la discussion, mais une chose est sûre, oublie for et utilise foreach à la place.

Pour le "1" en fait c'est le résultat de la fonction print_r() et un petit bug dans le code d'Ajoloca. Il devrait ressembler à
echo'<pre>';print_r($foo);echo'</pre>';
// ou
echo'<pre>';var_dump($foo);echo'</pre>';

par Ajoloca » 05 janv. 2007, 16:02

Re,
Tu as en PHP quelque chose de plus élégant "empty()", à ne pas confondre avec "isset()"
isset() retourne vrai si la variable est déclarée, même si elle est vide.
empty() retourne vrai si la variable est déclarée mais est vide contient 0 (si numérique) ou "" si chaîne.

Ce qui dans ton cas nous donnerait
if (! empty($tablaffich)) {
   // Tu fais ton traitement
}

par Invité » 05 janv. 2007, 15:49

bonjour,

merci de ta réponse.
en fait cela donne par exemple (je ne sais pas ce que c'est que ce "1" sous la dernière accolade, mais il apparait toujours, même si le tableau est vide => ??) :

Code : Tout sélectionner

Array ( [0] => Array ( [0] => A_ALAMA1 [1] => Chèque N° 1303308 [2] => 3000.00 [3] => ) [1] => Array ( [0] => A_CHISA2 [1] => Chèque N° 1303309 [2] => 120.00 [3] => ) [2] => Array ( [0] => A_NAVBS12 [1] => Chèque N° 1303329 [2] => 285.00 [3] => ) [3] => Array ( [0] => A_BRECA13 A_BREDI14 [1] => Chèque N° 1303330 [2] => 110.00 [3] => ) [4] => Array ( [0] => D_PIASA18 [1] => Chèque [2] => [3] => 250.00 ) ) 1
En pratique le message d'erreur n'apparait que si le tableau est vide (mais n'apparait pas avec PHP4...).
J'ai donc résolu le pb en n'affichant le tableau que si count($tablaffich) > 1....
pas tres élégant... mais efficace. Il y a mieux ?

par Ajoloca » 05 janv. 2007, 14:12

Bonjour,

Quand tu as de PB, la première chose c'est de voir le contenu de la variable qui pose problème.

Avant ton affichage (formaté) regarde comment est structuré ton tableau et ce qu'il contient.
echo '<pre>' . print_r($tablaffich) . '</pre>'
et montre le résultat.

[Edit (HR): ou même var_dump()]

Fatal error: Cannot use string offset as an array in ... = ?

par jerkeve » 05 janv. 2007, 13:47

Bonjour,

mon code fonctionne nickel sous PHP4 et bloque sur l'affichage d'une bete variable tableau des que je passe a PHP5...
Quelqu'un peut me dire ce qu'il faut faire pour afficher ma variable ?

Concretement je cherche simplement a afficher la variable $tablaffich qui se presente ainsi :
//.........
	for($j=0; $j<count($tablaffich); $j++)
	{
		echo '  
		<tr align="center">
		<td>',$tablaffich[$j][0],'</td>
		<td> ',$tablaffich[$j][1],' </td>
		<td> ',$tablaffich[$j][2],' </td>
		<td> ',$tablaffich[$j][3],' </td>	
		</tr>
		';
	}
//............
Elle est renseignée, elle existe, et meme si je veux simplement l'afficher ainsi : $tablaffich[0][0] , elle m'affiche le message d'arreur du titre de ce post.


Que faire pour afficher cette variable ? MERCI DE VOTRE AIDE
:D