dedlfix: while-Schleife mehrfach?

Beitrag lesen

Hi!

Was ist denn überhaupt das gewünschte Ergebnis? [...]
Ich möchte das Ergbnis der while-schleife(n) per include in einer anderen Datei ausgeben lassen. In meinem Fall ist es ein Image, das x-mal ausgegeben werden soll.

Eine Schleife hat kein Ergebnis. Sie führt lediglich eine oder mehrere Anweisungen mehrfach aus. Wenn du irgendein Ergebnis erwartest, musst du dafür sorgen (und kontrollieren!), dass es innerhalb der Schleife und mit jedem Durchlauf schrittweise entsteht.

$bild = "<img src=bild.gif>";
$platz_1 = 5; // 5 soll die Anzahl $bild ergeben
$count = 1;
while($count <= $platz_1) {
  $erster = $bild;
  echo $erster; // klappt innerhalb der Schleife, 5x $bild
  $count++;
}
echo $erster; // klappt nicht. Gibt nur 1x $bild aus

In der Schleife wird $erster mit dem Inhalt von $bild belegt und das insgesamt x-mal. = ist ein Zuweisungsoperator, kein Hinzufügeoperator. Kontrollausgaben sind ein wichtiges Fehlersuch-Hilfsmittel. Damit hättest du sehen können, dass $erster im ersten Druchlauf NULL ist und anschließend immer dem Inhalt von $bild entspricht. Also kann nach der Schleife auch nur ein $bild enthalten sein.

Du willst am Ende 5x den String von $bild hintereinander haben. Dazu kannst du ein einfaches str_repeat() verwenden und brauchst gar keine Schleife. Mit Schleife jedenfalls (ob for oder das etwas ungünstigere while) müsstest du Strings verbinden und zuweisen, wozu es den Kombinationsoperator .= gibt.

Bei einem Problem ist es wichtig, dass du das eigentliche Ziel in normalen Worten schilderst und dazu dann die dabei konkret auftretenden Schwierigkeiten. Nur so kann man als Außenstehender wissen, ob dein Lösungsweg überhaupt zur gewünschten Lösung führen kann und ob es bessere Alternativen gibt. Ohne das eigentliche Ziel kann man nur mehr oder weniger danebenliegen beim Raten, was man dir raten soll.

Lo!