Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Spaß mit foreach und Referenzen in PHP

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Spaß mit foreach und Referenzen in PHP

    Hi,
    hatte eben ein kleines Problem, das mein PHP-Weltbild hat zusammenbrechen lassen und habs hier mal heruntergebrochen.

    Ohne es zu testen... was wird hier wohl ausgegeben?

    PHP-Code:
    $array range(111);

    foreach (
    $array as $i => &$match) {}
    foreach (
    $array as $i => $match) {}

    print_r($array); 
    Falls jemand eine Erklärung haben sollte: Ich bin ganz Ohr!

    Viel Spaß,
    Christoph
    http://mcsodbrenner.blogspot.com/
    Serpent PHP Template Engine: http://code.google.com/p/serpent-php-template-engine/

  • #2
    Das hatten wir hier schon mal.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Code:
      // Ausgabe:
      Array
      (
          [0] => 1
          [1] => 2
          [2] => 3
          [3] => 4
          [4] => 5
          [5] => 6
          [6] => 7
          [7] => 8
          [8] => 9
          [9] => 10
          [10] => 10
      )
      Was gibt's da groß zu erklären?
      Nach dem ersten foreach-Durchlauf enthält $matches eine Referenz auf das letzte Array-Element.
      Und im zweiten Durchlauf wird das Element, auf das diese Referenz verweist, jeweils mit dem aktuellen Wert überschrieben.

      Bau das print_r in den Rumpf der zweiten foreach-Schleife ein, dann sollte es schnell deutlich werden, was genau passiert.
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #4
        Musste den Satz eben 5mal lesen, bevor ichs verstanden habe.
        Ganz so einleuchtend wie du fand ichs aber nicht.
        Danke!
        http://mcsodbrenner.blogspot.com/
        Serpent PHP Template Engine: http://code.google.com/p/serpent-php-template-engine/

        Kommentar


        • #5
          - http://www.php.de/adventskalender-20...-oddities.html

          Abschnitt „Referenzen und foreach-Schleifen“

          Kommentar


          • #6
            http://php.net/manual/de/control-structures.foreach.php

            6. Kommentar ist da auch hilfreich.
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Johannes Schlüter: References and foreach

              dr. ?

              Kommentar

              Lädt...
              X