PDA

Bekijk Volledige Versie : Oneindige loop



Eduard Bekker
15/01/04, 16:00
Beste mensen!

Waarom draait

<?php

$colofon=join("", file("colofon.txt"));

$colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);

$regel=explode("\n",$colofon);

for ( $n=2 ; $n <= count($regel) ; $n++ )
{
if (!strstr($regel[$n],":"))
{
$regel[$n]="x";
echo $regel[$n];
}
}


?>

Uit op een oneindige loop?

Rene Pijlman
15/01/04, 16:00
Eduard Bekker:
> echo $regel[$n];
[...]
>Uit op een oneindige loop?

Je wilt ons toch niet de informatie onthouden, wat er telkens in die
oneindige loop ge-echo'd wordt?

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Michiel de Roo
15/01/04, 19:45
Eduard Bekker wrote:
> Beste mensen!
>
> Waarom draait
>
> <?php
>
> $colofon=join("", file("colofon.txt"));
>
> $colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);
>
> $regel=explode("\n",$colofon);
>
> for ( $n=2 ; $n <= count($regel) ; $n++ )
> {
> if (!strstr($regel[$n],":"))
> {
> $regel[$n]="x";
> echo $regel[$n];
> }
> }
>
>
> ?>
>
> Uit op een oneindige loop?
>


Je moet < gebruiken ipv. <=
Anders maak je in elke loop een nieuwe entry voor $regel aan als die nog
niet bestond, waardoor $n dus nooit kleiner dan count($regel) kan worden.
count($regel) is immmers $n+1 per definitie.

Michiel.

Michiel de Roo
15/01/04, 19:45
Michiel de Roo wrote:
> Eduard Bekker wrote:
>
>> Beste mensen!
>>
>> Waarom draait
>>
>> <?php
>>
>> $colofon=join("", file("colofon.txt"));
>>
>> $colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);
>>
>> $regel=explode("\n",$colofon);
>>
>> for ( $n=2 ; $n <= count($regel) ; $n++ )
>> {
>> if (!strstr($regel[$n],":"))
>> {
>> $regel[$n]="x";
>> echo $regel[$n];
>> }
>> }
>>
>>
>> ?>
>>
>> Uit op een oneindige loop?
>>
>
>
> Je moet < gebruiken ipv. <=
> Anders maak je in elke loop een nieuwe entry voor $regel aan als die nog
> niet bestond, waardoor $n dus nooit kleiner dan count($regel) kan
> worden. count($regel) is immmers $n+1 per definitie.
>
> Michiel.
>

oops, waar ik kleiner zei moet groter zijn..... ;-)

Michiel de Roo
15/01/04, 19:45
Rene Pijlman wrote:
> Eduard Bekker:
>
>> echo $regel[$n];
>
> [...]
>
>>Uit op een oneindige loop?
>
>
> Je wilt ons toch niet de informatie onthouden, wat er telkens in die
> oneindige loop ge-echo'd wordt?
>

wat kan het anders zijn dan 'x' ?

Michiel.

Rene Pijlman
15/01/04, 22:00
Michiel de Roo:
>Rene Pijlman wrote:
>> Eduard Bekker:
>>> echo $regel[$n];
>>
>> Je wilt ons toch niet de informatie onthouden, wat er telkens in die
>> oneindige loop ge-echo'd wordt?
>
>wat kan het anders zijn dan 'x' ?

Oh ja, ik was al net zo snugger als die echo :-)

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Eduard Bekker
18/01/04, 21:45
Michiel de Roo wrote:
> Rene Pijlman wrote:
>
>> Eduard Bekker:
>>
>>> echo $regel[$n];
>>
>>
>> [...]
>>
>>> Uit op een oneindige loop?
>>
>>
>>
>> Je wilt ons toch niet de informatie onthouden, wat er telkens in die
>> oneindige loop ge-echo'd wordt?
>>
>
> wat kan het anders zijn dan 'x' ?
>
> Michiel.

Dat klopt.


--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------

Eduard Bekker
18/01/04, 22:00
Michiel de Roo wrote:
> Michiel de Roo wrote:
>> Eduard Bekker wrote:
>>
>>> Beste mensen! Waarom draait
>>> <?php
>>>
>>> $colofon=join("", file("colofon.txt"));
>>>
>>> $colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);
>>>
>>> $regel=explode("\n",$colofon);
>>>
>>> for ( $n=2 ; $n <= count($regel) ; $n++ )
>>> {
>>> if (!strstr($regel[$n],":"))
>>> {
>>> $regel[$n]="x";
>>> echo $regel[$n];
>>> }
>>> }
>>> ?>
>>>
>>> Uit op een oneindige loop?

>> Je moet < gebruiken ipv. <=
>> Anders maak je in elke loop een nieuwe entry voor $regel aan als die
>> nog niet bestond, waardoor $n dus nooit groter dan count($regel) kan
>> worden. count($regel) is immmers $n+1 per definitie.

Ik heb het aangepast en nu werkt het wel. Wat je zegt, zal dus wel
kloppen. Maar ...


> count($regel) is immmers $n+1 per definitie.

.... begrijp ik niet. count($regel) meet toch de array-grootte (heet
geloof ik 'dimensie' in het nederlands)? Die is hier enkele tientallen.


--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------

Michiel de Roo
18/01/04, 22:15
Eduard Bekker wrote:
> Michiel de Roo wrote:
>>>> Beste mensen! Waarom draait
>>>> <?php
>>>>
>>>> $colofon=join("", file("colofon.txt"));
>>>>
>>>> $colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);
>>>>
>>>> $regel=explode("\n",$colofon);
>>>>
>>>> for ( $n=2 ; $n <= count($regel) ; $n++ )
>>>> {
>>>> if (!strstr($regel[$n],":"))
>>>> {
>>>> $regel[$n]="x";
>>>> echo $regel[$n];
>>>> }
>>>> }
>>>> ?>
>>>>
>>>> Uit op een oneindige loop?
>>> Je moet < gebruiken ipv. <=
>>> Anders maak je in elke loop een nieuwe entry voor $regel aan als die
>>> nog niet bestond, waardoor $n dus nooit groter dan count($regel) kan
>>> worden. count($regel) is immmers $n+1 per definitie.
>
>
> Ik heb het aangepast en nu werkt het wel. Wat je zegt, zal dus wel
> kloppen. Maar ...
>
>
> > count($regel) is immmers $n+1 per definitie.
>
> ... begrijp ik niet. count($regel) meet toch de array-grootte (heet
> geloof ik 'dimensie' in het nederlands)? Die is hier enkele tientallen.

Als je array tien elementen bevalt, dan zijn die genummerd van 0 t/m 9.
Het array eindigt dan bij < 10. Bij jouw code loopt het nog tot element
nummer 10 door en dan wordt er een nieuw element aangemaakt met nummer 10,
dmv. $regel[$n]="x". Vervolgens is count($regel) dan dus 11, en krijg je
opnieuw een loop met hetzelfde.

Michiel.

Eduard Bekker
19/01/04, 23:15
Michiel de Roo wrote:
> Eduard Bekker wrote:
>
>> Michiel de Roo wrote:
>
> >>>> Beste mensen! Waarom draait
> >>>> <?php
> >>>>
> >>>> $colofon=join("", file("colofon.txt"));
> >>>>
> >>>> $colofon = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$colofon);
> >>>>
> >>>> $regel=explode("\n",$colofon);
> >>>>
> >>>> for ( $n=2 ; $n <= count($regel) ; $n++ )
> >>>> {
> >>>> if (!strstr($regel[$n],":"))
> >>>> {
> >>>> $regel[$n]="x";
> >>>> echo $regel[$n];
> >>>> }
> >>>> }
> >>>> ?>
> >>>>
> >>>> Uit op een oneindige loop?

> Als je array tien elementen bevalt, dan zijn die genummerd van 0 t/m 9.
> Het array eindigt dan bij < 10. Bij jouw code loopt het nog tot element
> nummer 10 door en dan wordt er een nieuw element aangemaakt met nummer
> 10, dmv. $regel[$n]="x". Vervolgens is count($regel) dan dus 11, en
> krijg je opnieuw een loop met hetzelfde.

Het wordt me nu langzaam duidelijk, waarvoor dank.


--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------