Re: Incrément dans une boucle for

Liste des GroupesRevenir à fcl php 
Sujet : Re: Incrément dans une boucle for
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.php
Date : 11. Aug 2022, 17:02:52
Autres entêtes
Organisation : There's no cabale
Message-ID : <td35ms$fb$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1
Le 11/08/2022 à 15:42, Didier a écrit :
Bonjour,
Est-il possible d'incrémenter la variable d'une boucle for autrement que
de 1 ?

Oui.

Je voudrais un truc du genre :
$intervalle=20;
for($i=0;$i<100;$i+intervalle)

 for($i=0;$i<100;$i+=intervalle)

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.

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 ne sais pas si c'est directement lié à mon incrément).

Donc non. Tu ne fais aucun incrément, et le problème d'allocation doit
avoir lieu quelque part dans la boucle.

Sur Internet, on ne voit que des exemples de type $i++

En effet, il est dommage que sur cette page ils ne parlent pas de la
possibilité d'incrémenter ou décrémenter d'une valeur autre que 1 :
https://www.php.net/manual/fr/language.operators.increment.php

C'est dans les opérateurs d'affectation que l'on voit la syntaxe
$a += $b :
https://www.php.net/manual/fr/language.operators.assignment.php

Note que c'est une syntaxe raccourcie, et que l'affectation normale
conviendrait tout aussi bien, à savoir :
 $a = $a + 1 au lieu de $a++
 $a = $a - 1 au lieu de $a--
 $a = $a + 2 au lieu de $a += 2
et ainsi de suite.


Pour en revenir à ton exemple, tu pouvais donc écrire :

 for ($i = 0; $i < 100; $i = $i + intervalle)


--
Olivier Miakinen

Date Sujet#  Auteur
11 Aug 22 * Incrément dans une boucle for3Didier
11 Aug 22 `* Re: Incrément dans une boucle for2Olivier Miakinen
11 Aug 22  `- Re: Incrément dans une boucle for1Didier

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal