OVH Cloud OVH Cloud

erreur incomprhensible

4 réponses
Avatar
francois
bonjour a tous.

Je n'arrete pas de chercher pourquoi j'ai l'erreur

Fatal error: [] operator not supported for strings

sur une ligne avec le code :

for ($i=1; $i<32; $i++) {
$dob_day[] = array('id' => sprintf('%02d', $i),
'text' => sprintf('%02d', $i));
}

Avez vous une petite idée ?

Merci beaucoup.

4 réponses

Avatar
Olivier Miakinen

Je n'arrete pas de chercher pourquoi j'ai l'erreur
Fatal error: [] operator not supported for strings

sur une ligne avec le code :

for ($i=1; $i<32; $i++) {
$dob_day[] = array('id' => sprintf('%02d', $i),
'text' => sprintf('%02d', $i));
}


La syntaxe « $dob_day[] = » indique de rajouter une valeur (en
l'occurrence un tableau) à la fin du tableau $dob_day. Si, avant cette
instruction, $dob_day n'est pas un tableau, par exemple une chaîne de
caractères, l'erreur me semble normale.

Essaye d'initialiser le tableau avant la boucle for :

$dob_day = array();
for ($i=1; $i<32; $i++) {
$dob_day[] = array('id' => sprintf('%02d', $i),
'text' => sprintf('%02d', $i));
}

Tu devrais alors obtenir un tableau de 32 tableaux, dont j'espère que
c'est ce que tu voulais.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
bruno modulix
francois wrote:
bonjour a tous.

Je n'arrete pas de chercher pourquoi j'ai l'erreur

Fatal error: [] operator not supported for strings

sur une ligne avec le code :

for ($i=1; $i<32; $i++) {
$dob_day[] = array('id' => sprintf('%02d', $i),
'text' => sprintf('%02d', $i));
}

Avez vous une petite idée ?


Oui. L'opérateur [] ne peut pas être appliqué à une chaine !-)

Je subodore que - en amont du code cité - une chaine est affectée à la
variable $dob_day. La vérification est d'ailleurs très simple à faire
(ça m'a pris 15 secondes).

Merci beaucoup.


De rien.

Je me permets au passage de te rappeler un principe général: poster le
plus petit fragment de code possible qui soit fonctionnel et reproduise
l'erreur.

Si tu avais fait ce travail, tu aurais probablement remarqué que le code
que tu a posté fonctionne correctement, et que donc le problème est en
amont (c'est d'ailleurs assez courant : PHP te signale l'endroit où le
symptôme se manifeste, à toi de remonter à la cause).

Bruno
--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"

Avatar
Zouplaz
"francois" wrote in
news::

bonjour a tous.

Je n'arrete pas de chercher pourquoi j'ai l'erreur

Fatal error: [] operator not supported for strings

sur une ligne avec le code :

for ($i=1; $i<32; $i++) {
$dob_day[] = array('id' => sprintf('%02d',
$i),
'text' => sprintf('%02d', $i));
}

Avez vous une petite idée ?



Bonjour, est-ce que tu as pensé à déclarer $dob_day = array() avant la
boucle ?

Avatar
__marc.quinton__
francois wrote:

Je n'arrete pas de chercher pourquoi j'ai l'erreur }

Avez vous une petite idée ?



facile, essai ce code, en modifiant les commentaires
sur $dod_days;

<?php

error_reporting(E_ALL);

$dob_day = array();
# $dob_day = '123';
# $dob_day = '';

for ($i=1; $i<32; $i++) {
$dob_day[] = array(
'id' => sprintf('%02d', $i),
'text' => sprintf('%02d', $i));
}

print_r($dob_day);

?>