Mustrum Ridcully: for-Schleife in Variable

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

  1. 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.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  2. 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  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
    Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. 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";
      
      1. Hello,

        ? Bahnhof ?

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
    2. $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 :)