Schleife mit Funktionsaufruf schmeisst Array durcheinader !

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schleife mit Funktionsaufruf schmeisst Array durcheinader !

    Habe gerade bei einem längeren Skript einen unverständlichen Fehler entdeckt

    hier mal eine stark abgespeckte Version:
    PHP-Code:
    <?
    function reformurl($val) {
        echo  $val; 
    }

    $rest = array(
        "eins",
        "zwei",
        "drei"
    );

    echo "<pre>";
        print_r($rest);
    echo "</pre>";

    echo "Schleife ohne Funktionsaufruf<br><br>";
    echo "<br><br>Als foreach Schleife <br>";

    foreach($rest as $try ) {
        echo "<br>$try und in Funktion :";
    }


    echo "<br><br>Schleife mit Funktionsaufruf<br><br>";

    foreach($rest as $try ) {
        
        echo "<br>   $try und in Funktion :".reformurl($try);
    }
    ?>
    und sollte doch in der zweiten Schleife der WErt des Array elements wiederholt werden. Wird aber nicht! Stattdessen erfolgt eine Ausgabe des ersten Elements willkürlich und alle folgenden werden "verrückt" :

    Array
    (
    [0] => eins
    [1] => zwei
    [2] => drei
    )

    Schleife ohne Funktionsaufruf

    eins und in Funktion :
    zwei und in Funktion :
    drei und in Funktion :

    Schleife mit Funktionsaufruf

    eins
    eins und in Funktion :zwei
    zwei und in Funktion :drei
    drei und in Funktion :
    Habe es auch mit for schleifen und while versucht klappt aber nicht!

    Jemand ne Idee wo diese willkürliche Ausgabe herkommt?
    chansel0049
    ----------------------------------------------------
    if you've reached the bottomline - dig further!
    Übersetzer gesucht? http://www.babelport.com

  • #2
    schätze mal das "echo" im "echo" stört den parser ... setz in der funktion
    einfach ein "return" statt echo ein, dann gehts ... ein echo in einer funktion
    ist imho auch nicht die feine englische
    Kissolino.com

    Kommentar


    • #3
      Ich verbeuge mich in tiefster Ehrfurcht vor deinem gottgleichen Wissen und wie schon wayne und garth sagten "Ich bin unwürdig"

      Danke Wurzel, wäre nie auf darauf gekommen! Aber richtig logisch ist das auch nicht oder ?

      Naja, jetzt funzts Danke
      chansel0049
      ----------------------------------------------------
      if you've reached the bottomline - dig further!
      Übersetzer gesucht? http://www.babelport.com

      Kommentar


      • #4
        Aber richtig logisch ist das auch nicht oder ?
        doch.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Und zwar sehr ... letztlich erfolgt die Ausgabe des Echo's außerhalb der Funktion erst wenn die Funktion abgearbeitet wurde (also erst String concatenation ... dann Ausgabe) ... da diese wiederum ein Echo ausführt erfolgt diese Ausgabe natürlich zuerst ...
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            die Ausgabe des Echo's außerhalb der Funktion erst wenn die Funktion abgearbeitet wurde (also erst String concatenation ... dann Ausgabe) ... da diese wiederum ein Echo ausführt erfolgt diese Ausgabe natürlich zuerst
            das ist doch mal ne Aussage
            chansel0049
            ----------------------------------------------------
            if you've reached the bottomline - dig further!
            Übersetzer gesucht? http://www.babelport.com

            Kommentar

            Lädt...
            X