Sujet : Re: Incrément dans une boucle for
De : nospam (at) *nospam* invalid.invalid (Didier)
Groupes : fr.comp.lang.phpDate : 11. Aug 2022, 19:03:19
Autres entêtes
Organisation : Aioe.org NNTP Server
Message-ID : <td3con$ehl$1@gioia.aioe.org>
References : 1 2
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.1.2
Le 11/08/2022 à 17:02, Olivier Miakinen a écrit :
Le 11/08/2022 à 15:42, Didier a écrit :
Je voudrais un truc du genre :
$intervalle=20;
for($i=0;$i<100;$i+intervalle)
for($i=0;$i<100;$i+=intervalle)
Oups oui, j'ai dû faire une erreur en recopiant mon code, ou alors mon problème était là. Depuis d'ai simplifié mon code, et j'ai pu me ramener à une boucle où j'incrémente en faisant $i++.
Mais je viens d'essayer ta proposition, ça fonctionne.
Soit dit en passant, je préfère pour ma part du code plus aéré :
for ($i = 0; $i < 100; $i += intervalle)
Je me heurte à une erreur :
Allowed memory size of 134217728 bytes exhausted (tried to allocate
100663304 bytes)
C'est normal si tu fais des allocations dans ta boucle.
Oui je fais une allocation d'une valeur dépendant de $i dans un tableau. Mais rien sur la variable de boucle elle-même.
Avec $i = 0 qui n'est jamais incrémenté, la valeur de ($i + intervalle)
est égale à intervalle à chaque tour de boucle, cela fait donc une
boucle infinie.
Je devais être dans cette situation, mais comme mon code finissait pas ne pas être trop clair, j'ai tout repris à zéro, et comme d'hab le plus simple s'est montré le plus efficace et a le mieux marché.
En tout cas merci pour ton aide rapide, ça ouvre toujours les yeux sur le truc plus gros que nous et qu'on ne voit pas au beau milieu de notre code.
Et je suis rassuré de savoir qu'on peut incrémenter d'un pas supérieur à 1, voir un pas évalué.
Didier.