Kalle_B: Hilfe - was macht der break?

Hi,

ich raufe mir die Haare. In dieser Schleife wird die erste if- Bedingung ( 0 == 'zeit_aen' ) wahr, wenn break vorkommt:

for ( reset($row_usr); list($key, $val) = each($row_usr); )
      {
        echo "<h2>[".$key."]</h2>\n";
        if ( $key == 'zeit_aen' )   { $feldname = 'zeit_aen';   break; }
        if ( $key == 'last_login' ) { $feldname = 'last_login'; break; }
      }

OHNE break läuft es richtig:

for ( reset($row_usr); list($key, $val) = each($row_usr); )
      {
        echo "<h2>[".$key."]</h2>\n";
        if ( $key == 'zeit_aen' )   { $feldname = 'zeit_aen';   }
        if ( $key == 'last_login' ) { $feldname = 'last_login'; }
      }

Wieso läuft das Programm auf den break?

Kalle

  1. Hi,

    Wieso läuft das Programm auf den break?

    und warum schaust Du nicht einfach in der Doku nach, was break macht?

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      Wieso läuft das Programm auf den break?
      und warum schaust Du nicht einfach in der Doku nach, was break macht?

      Verlässt die for- Schleife.

      Das erklärt aber nicht, warum ein Vergleich, wo der eine Operant 0 (Ziffer 0) ist, immer true ergibt.

      Kalle

      1. Hi,

        Das erklärt aber nicht, warum ein Vergleich, wo der eine Operant 0 (Ziffer 0) ist, immer true ergibt.

        dann würde ich eventuel mal auf Identität prüfen: ===

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
  2. Hallo,

    ich raufe mir die Haare. In dieser Schleife wird die erste if- Bedingung ( 0 == 'zeit_aen' ) wahr, wenn break vorkommt:

    Nicht nur dann. Der liederliche Vergleich (0=='zeit_aen') liefer true, genau wie 0=="php".

    viele Grüße

    Axel

    1. Hallo Axel,

      Nicht nur dann. Der liederliche Vergleich (0=='zeit_aen') liefer true, genau wie 0=="php".

      Ja, habe ihn geändert in
      ( 'x'.$key == 'xzeit_aen' )

      So geht's.

      LG Kalle