Sven Rautenberg: Und schon sind sie da, die ersten Problemchen... :-)

Beitrag lesen

Moin!

Das heisst, bei dieser Zeile

for ($i=1; $i<count($pfad); $i++)

Bedenke, welche Umsetzungsbedingungen für die for-Schleife gelten.

Du gibst drei Anweisungen (so nenne ich sie jetzt mal) an, getrennt durch ein Semikolon.

Anweisung 1 ($i=1) wird vor Beginn der Schleife einmal ausgeführt.
Anweisung 2 ($i<count($pfad)) wird vor Beginn eines Schleifendurchlaufs geprüft. Wenn der Ausdruck "wahr" ergibt, wird die Schleife durchlaufen.
Anweisung 3 ($i++) wird nach Ende eines Schleifendurchlaufs ausgeführt.

Man kann eine for-Schleife auch als while-Schleife schreiben:

$i=1;
while ($i<count($pfad))
{
  //Anweisungen
  $i++;
}

Wichtig zu bemerken ist bei diesem konkreten Beispiel: Wenn count($pfad) den Wert 4 hat, dann wird die for-Schleife mit den Werten 1, 2 und 3 für $i durchlaufen, aber nicht mit 4!

Das macht durchaus Sinn, denn count($pfad) liefert die Anzahl der Arrayelemente. Der höchste Arrayindex hingegen ist um eins kleiner, weil ja der Index Null existiert.

hiesse das nun aufgelöst(bezogen auf meinen angenommenen Pfad "includes/javascript/popups/irgendwas.txt";),

for($i=1; 1<4[1]; 1+1)  //Ausgabe:javascript, nächster Durchlauf
for( 2<4[2]; 2+1)  //Ausgabe:popus, nächster Durchlauf
for(3<4[3]; 3+1)  //Ausgabe:irgendwas.txt anstatt $title, nächster Durchlauf

Hier ist es falsch. $i wird erst am Ende des Durchlaufs von 3 auf 4 erhöht.

Und wenn $i = 4 ist, ist es nicht mehr kleiner als count($pfad), also wird die Schleife abgebrochen und ...

if (4<4[3]) //Bedingung nicht erfüllt, also müsste hier doch auf

...diese Bedingung wird niemals erreicht.

- Sven Rautenberg

--
Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!