Felix Riesterer: Inhalt von While Schleife in Email ausgeben

Beitrag lesen

Lieber Tim,

Also musst du in jedem Schleifendurchlauf den neuen Teilstring an den bereits bestehenden _anhängen_

das hast Du nicht verstanden?

Du weist dagegen einfach nur zu und überschreibst so in jedem Durchlauf die Meldung aus dem vorherigen Durchlauf.

Und das auch nicht? Also ein Beispiel:

$str = '';  
$i = 3;  
  
while ($i > 0) {  
    $str = "i ist $i!";  
    $i--; // macht $i um eins kleiner  
}  
  
echo $str; // "i ist 1!"

Du siehst im Beispiel, dass in der Schleife der Inhalt der String-Variablen immer wieder neu definiert (oder in Martins Worten "übschrieben") wird. Anstatt alle "Ausgaben" zu haben, steht nur die letzte "Ausgabe" im String.

Die Lösung ist hier der .= Operator, der Strings miteinander verkettet (Martin schrieb doch "Stringverkettung"!):

$str = '';  
$i = 3;  
  
while ($i > 0) {  
    $str .= "i ist $i!"; // man beachte den .= Operator!  
    $i--;  
}  
  
echo $str; // "i ist 3!i ist 2!i ist 1!"

Klarer geworden?

Liebe Grüße,

Felix Riesterer.

--
"Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)