for-Schleife in Variable
Mustrum Ridcully
- php
1 Steel0 Tom2 dedlfix
0 Tom
0 Mustrum Ridcully
Ich hab hier ein Problem, das für die meisten von euch wahrscheinlich ziemlich einfach erscheint:
Ich möchte innerhalb einer Variable eine for-Schleife ausgeben. Aber egal was ich probier, die Seite bleibt immer weiß.
Hier mal ein Beispiel einer nicht funktionierenden Version, ich hoffe ihr könnt mir sagen wie das Funktionieren könnte.
$test = "hallochen ",
for($i=1;$i<=31;$i++)
{
echo $i;
}
," abc";
Wenn ich
for($i=1;$i<=31;$i++)
{
$schleife = $i;
}
$test = 'ABC '. $schleife .' DEF';
versuche, kommt dabei nur ABC 31 DEF raus, die übrigen Zahlen fehlen also.
Wie lässt sich das lösen?
Gruß Mustrum Ridcully
Hi,
Ich möchte innerhalb einer Variable eine for-Schleife ausgeben. Aber egal was ich probier, die Seite bleibt immer weiß.
Das klingt schon irgendwie schraeg.
Hier mal ein Beispiel einer nicht funktionierenden Version, ich hoffe ihr könnt mir sagen wie das Funktionieren könnte.
$test = "hallochen ",
for($i=1;$i<=31;$i++)
{
echo $i;
}
," abc";
Sehr abenteuerlich... Ich nehm an Du hast Fehlermeldungen und Warnungen deaktiviert, was? ;)
> Wenn ich
>
> ~~~php
for($i=1;$i<=31;$i++)
> {
> $schleife = $i;
> }
>
> $test = 'ABC '. $schleife .' DEF';
versuche, kommt dabei nur ABC 31 DEF raus, die übrigen Zahlen fehlen also.
Ja. Welchen Wert hat denn $schleife wohl, wenn die Variable ausgegeben wird? Du gibst $schleife ja keine Chance was anderes zu enthalten als den aktuellsten Wert von $i. Dabei hast Du das mit der Stringverkettung doch schon ganz gut raus.
Ich lass Dich darueber nochmal kurz nachdenken. Kommst bestimmt drauf.
Hello,
$schliefe = ''; ## Leerstring bereitstellen
for( $i = 1; $i <= 31; $i++ )
{
$schleife .= "$i, "; ## und die Zahlen als Zeichenketten anhängen
## nebst Komma und Leerzeichen
}
echo "ABC $schleife DEF";
Was hältst Du davon?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
echo $begrüßung;
$schliefe = ''; ## Leerstring bereitstellen
for( $i = 1; $i <= 31; $i++ )
$schleife .= "$i, "; ## und die Zahlen als Zeichenketten anhängen
## nebst Komma und Leerzeichen
echo "ABC $schleife DEF";
>
> Was hältst Du davon?
Abstand™. In $schleife steht hintendran ein Komma, für das der nächste Schritt eine Entfernung per Stringoperation ist. Bei einem implodierten Array passiert das nicht. Es zu erzeugen ist in dem Fall mit [range()](http://de.php.net/manual/en/function.range.php) recht einfach möglich.
`echo 'ABC', implode('', range(1, 31)), 'DEF';`{:.language-php}
Gefordert war die Separation mit Komma und Leerzeichen auch nciht. Falls der OP das aber gewünscht und nur nicht angeführt hat, kann das als erster Parameter von [implode()](http://de.php.net/manual/en/function.implode.php) angegeben werden.
Mustrum Ridcully: An meinem Beispiel kannst du sehen, dass man bei echo Funktionsaufrufe anstelle einer Variablen oder eines festen Strings als Parameter verwenden kann. [Kontrollstrukturen](http://de.php.net/manual/en/language.control-structures.php) dagegen kann man nicht als Parameter in Anweisungen hineinschreiben.
echo "$verabschiedung $name";
Hello,
? Bahnhof ?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
$schliefe = ''; ## Leerstring bereitstellen
for( $i = 1; $i <= 31; $i++ )
{
$schleife .= "$i, "; ## und die Zahlen als Zeichenketten anhängen
## nebst Komma und Leerzeichen
}echo "ABC $schleife DEF";
Mit dieser Version und 1-2 Änderungen hab ich es hinbekommen :)