Deutsch   English   Français   Italiano  
<td35ms$fb$1@cabale.usenet-fr.net>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!news.trigofacile.com!usenet-fr.net!.POSTED!not-for-mail
From: Olivier Miakinen <om+news@miakinen.net>
Newsgroups: fr.comp.lang.php
Subject: =?UTF-8?Q?Re:_Incr=c3=a9ment_dans_une_boucle_for?=
Date: Thu, 11 Aug 2022 17:02:52 +0200
Organization: There's no cabale
Lines: 57
Message-ID: <td35ms$fb$1@cabale.usenet-fr.net>
References: <td310r$r30$1@gioia.aioe.org>
NNTP-Posting-Host: 49.121.125.78.rev.sfr.net
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: cabale.usenet-fr.net 1660230172 491 78.125.121.49 (11 Aug 2022 15:02:52 GMT)
X-Complaints-To: abuse@usenet-fr.net
NNTP-Posting-Date: Thu, 11 Aug 2022 15:02:52 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101
 Firefox/60.0 SeaMonkey/2.53.1
In-Reply-To: <td310r$r30$1@gioia.aioe.org>
Bytes: 2647

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