Das Alphabet in einer for-Schleife

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

  • Das Alphabet in einer for-Schleife

    Hallo Mädels, Jungs ... was auch immer.

    So trivial, wie sich das folgende Stückchen Code auch anhören mag, so finde ich doch keinen einleuchtenden Sinn für das Verhalten.

    Gegeben ist:
    PHP-Code:
    for ($i 'a'$i <= 'z'$i++) {
        echo 
    $i "<br />";

    Es soll also das Alphabet in Kleinbuchstaben einmal komplett ausgegeben werden. Komischerweise wird das Alphabet aber a^2 ausgegeben. Also eigentlich eine doppelte exponentiale Ausgabe, die aufgrund der For-Anweisung so nicht kommen sollte. Tests ergaben, dass die Strings in der For Anweisung sogar ohne die Hochkommata funktionieren, was die Verwirrung aber nicht minderte.

    Kann mir das einer erklären? Normalerweise muss die For-Anweisung doch erkennen, dass bei z Schluß ist und nicht mit aa weiter machen ...

    Oder übersehe ich hier einfach etwas?
    MM Newmedia | MeinBlog

  • #2
    Okay ... die Lösung ist:
    PHP-Code:
    for ($i 'a'$i != 'aa'$i++) {
        echo 
    $i "<br />";

    Habe gerade mal im Manual in den Kommentaren zur for-Anweisung gelesen. Trotzdem ein reichlich komisches Verhalten.

    Gruß
    Marcel
    MM Newmedia | MeinBlog

    Kommentar


    • #3
      Das hat nichts mit der for-Schleife zu tun
      Du gehst von 'a'++ = 'a'+1 = 'b' aus. Aber so ist es in PHP nicht. Man könnte auch sagen ord() != intval().

      Übrigens ist das eine Besonderheit der De-/Increment-Operatoren. range() verhält sich so, wie man es intuitiv erwartet und bestimmt gibt es noch andere Beispiele.
      Zuletzt geändert von onemorenerd; 30.06.2008, 19:38.

      Kommentar

      Lädt...
      X