Kelvin Gross: FOR-Schleife + Session + IF-Abfrage = Fehler!

Hallo zusammen,
da ich schon länger nicht mit PHP programmiert habe, fallen mir immer öfters Sachen auf die PHP nicht kann (oder täusche ich mich da?)...

Gestern wurde meine Frage schon beantwortet --> Danke an alle!

Heute muss ich feststellen dass ich in einer simplen for-schleife keine Session-Variablen initialisieren kann so wie ich es gewohnt bin:

for($i = 0; $i < count($getContent); $i++) {  
 $dummy = split(": ", $getContent[$i]);  
 $_SESSION['Vorname']  = ($i ==  4) ? trim($dummy[1]) : "Fehler";  
 $_SESSION['Nachname'] = ($i ==  5) ? trim($dummy[1]) : "Fehler";  
 $_SESSION['Punkte']   = ($i == 19) ? trim($dummy[1]) : "Fehler";  
 $_SESSION['Nummer']   = ($i == 24) ? trim($dummy[1]) : "Fehler";  
}  
// Diese Variante geht nicht, es wird immer "Fehler" initialisiert.
for($i = 0; $i < count($getContent); $i++) {  
 $dummy = split(": ", $getContent[$i]);  
 if($i ==  4) { $_SESSION['Vorname']  = trim($dummy[1]); }  
 if($i ==  5) { $_SESSION['Nachname'] = trim($dummy[1]); }  
 if($i == 19) { $_SESSION['Punkte']   = trim($dummy[1]); }  
 if($i == 24) { $_SESSION['Nummer']   = trim($dummy[1]); }  
}  
// Das geht!

Die obere Variante gefällt mir besser, weil gewohnt, warum läuft die nicht?
Es handelt sich nur um ein Verständnisproblem.

Danke

  1. Hi!

    da ich schon länger nicht mit PHP programmiert habe, fallen mir immer öfters Sachen auf die PHP nicht kann (oder täusche ich mich da?)...

    Du täuschst dich, dein Fehler funktioniert in jeder Programmiersprache, die den ternären Operator hat, gleich.

    $_SESSION['Vorname']  = ($i ==  4) ? trim($dummy[1]) : "Fehler";
    if($i ==  4) { $_SESSION['Vorname']  = trim($dummy[1]); }

    Variante 1 heißt: Wenn i gleich 4, dann dummy ansonsten Fehler.
    Variante 2 heißt: Wenn i gleich 4, dann dummy.

    Da deine For-Schleife nicht mit i gleich 4 endet, bekommst du wegen nicht erfüllter Bedingung den Fehler.

    Mit Kontrollausgaben von $i und $_SESSION['Vorname'] direkt nach der zitierten Zeile hätte dir dein Fehler auffallen können.

    Lo!

    1. Da deine For-Schleife nicht mit i gleich 4 endet, bekommst du wegen nicht erfüllter Bedingung den Fehler.

      Ohhhhh .... sowas blödes!!!
      Ich könnt mich selber schlagen, du hast vollkommen Recht!

      Sorry für diese echt dumme anfänger Frage, man man man :)

      Danke dir!