MaxPayne: for schleife => unendlich ohne grund

Hi

Folgendes Stück Quelltext lässt aus mir unerklärlichen Gründen eine Endlosschleife entstehen:

.....
echo count($raids); // hier wird 2 ausgegeben=> schleife sollte 2x
for($i=0; $i<count($raids); $i++)
  {
  ...
  }
.....

jedoch der in meinen augen gleichzusetzende Quelltext den ich probiert habe

.....
echo count($raids); // hier wird 2 ausgegeben=> schleife sollte 2x
$zahl=count($raids);
for($i=0; $i<$zahl; $i++)
  {
  ...
  }
.....

geht....

Ich würde gerne wissen warum das eine geht und das andere nicht...

Falls mir da jemand weiter helfen kann, wär ich sehr dankbar

mfg Max

  1. Hallo du da draußen,

    for($i=0; $i<count($raids); $i++)

    $zahl=count($raids);
    for($i=0; $i<$zahl; $i++)

    Ich würde gerne wissen warum das eine geht und das andere [eine Endlosschleife erzeugt]

    Ich vermute, dass du innerhalb des Codes, der mit der For-Schleife ausgeführt wird, einen Wert ins Array $raids hinzufügst -- Womit mit jedem Durchlauf count($raids) sowie $i eins größer wird und letzteres damit niemals größer gleich count($raids) wird.

    Die zweite Lösung solltest du somit vorziehen, da dabei die Anzahl der Werte in $raids vor der Ausführung irgendeiner Anweisung in der For-Schleife genommen wird.

    Grüße von hier drinnen, aus Biberach an der Riss,
    Candid Dauth (Dogfish)

    --
    »Bismarck biss Mark, bis Mark Bismarck biss!«
    http://cdauth.net.tc/
    ie:{ fl:( br: va:} ls:[ fo:| rl:( n4:( ss:) de:> js:( ch:| sh:( mo:) zu:|
    1. hab mal folgendes getestet, um sicher zu sein, dass es nich an einem wie von dir geschilderten fehler liegt:

      for($i=0; $i<count($raids); $i++)
       {
       echo "TEST";
       }

      und es geht trotzdem net

      naja, trotzdem thx.....

      mfg Max

      1. Hallo du da draußen,

        for($i=0; $i<count($raids); $i++)
        echo "TEST";
        und es geht trotzdem net

        Es führt immernoch zu einer Endlosschleife? Sehr komisch...

        Jetzt würde mich aber doch glatt interessieren, was bei »echo count($raids)« herauskommt...

        Grüße von hier drinnen, aus Biberach an der Riss,
        Candid Dauth (Dogfish)

        --
        »Bismarck biss Mark, bis Mark Bismarck biss!«
        http://cdauth.net.tc/
        ie:{ fl:( br: va:} ls:[ fo:| rl:( n4:( ss:) de:> js:( ch:| sh:( mo:) zu:|
        1. »echo count($raids)«

          liefert 2

          dass ist ja das verwunderliche....

          mfg Max

          1. Hallo du da draußen,

            »echo count($raids)«
            liefert 2
            dass ist ja das verwunderliche....

            Die einzige Theorie, die mir jetzt noch einfällt, ist diese:

            • Du hast dich vertippt: In der Anweisung »$i<count($raids)« steht in deinem Quellcode wahrscheinlich in Wirklichkeit $j oder $I, ohne dass du es merkst.

            Grüße von hier drinnen, aus Biberach an der Riss,
            Candid Dauth (Dogfish)

            --
            »Bismarck biss Mark, bis Mark Bismarck biss!«
            http://cdauth.net.tc/
            ie:{ fl:( br: va:} ls:[ fo:| rl:( n4:( ss:) de:> js:( ch:| sh:( mo:) zu:|