Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] If Abfrage bei unterschiedlichen Variablentypen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] If Abfrage bei unterschiedlichen Variablentypen

    Hallo

    ich verwende folgende Anweisung und "wundere" mich über das Ergebnis:

    Code:
           $a      = 0;
            if ($a != 'dummy')
            {
              echo "a ungleich 0";
            }
            else
            {
              echo "a gleich 0";
            }
    Ich habe erwartet dass das Ergebnis lautet: "a gleich 0". Tut es aber nicht.
    Natürlich kann ich in die Abfrage ein "!==" einbauen, dann funktioniert es.
    Das Verhalten ist für mich trotzdem nicht logisch.

    Kann mich jemand aufklären, was ich nicht verstehe?

  • #2
    Lieber csmcg,

    bitte richtig lesen.
    Der Output ist "a gleich 0".

    Kommentar


    • #3
      habs bei mir getestet:

      test.php:
      (code weil php nicht funktionieren)
      Code:
      <?php
      $a = 0;
      if ($a != 'dummy'){
          echo "a ungleich 0";
      }
      else{
          echo "a gleich 0";
      }
      ?>
      ausgabe:
      Code:
      a gleich 0
      :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

      Kommentar


      • #4
        Zitat von fxb
        Lieber csmcg,

        bitte richtig lesen.
        Der Output ist "a gleich 0".
        laut deinem ersten post nicht

        Zitat von fxb
        Ich habe erwartet dass das Ergebnis lautet: "a gleich 0". Tut es aber nicht.
        um dein resultat zu ereichen müssten du $a so definieren: $a = "0";
        :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

        Kommentar


        • #5
          Irgendwie scheinen wir uns nicht zu verstehen.

          Hier das Beispiel etwas anders:
          Code:
                  $a      = 0;
                  if ($a != 'dummy')
                  {
                    echo "a ungleich 'dummy'";
                  }
                  else
                  {
                    echo "a gleich 'dummy'";
                  }
          Ausgabe ist : "a gleich 'dummy'".

          Ich weiß auch, dass dies nicht passiert, wenn ich $a = "0" verwende.

          Trotzdem möchte ich verstehen , wieso das Ergebnis so ist !

          Kommentar


          • #6
            Die Zeichenkette 'dummy' wird für den Vergleich in eine Ganzzahl umgewandelt und (int)'dummy' ist 0.

            Kommentar


            • #7
              Würde dann 'dummy' != 0 das erwartete Ergebnis bringen? Also wird immer der Typ des 1. Vergleichswertes verwendet?

              Kommentar


              • #8
                Probier's doch aus.

                Kommentar


                • #9
                  Würd ich gern, bin aber nicht daheim und hab hier kein installierten Apache mit PHP Egal, werds heut Abend machen.

                  Kommentar


                  • #10
                    Weil zum Vergleichen der String 'dummy' nach Integer gecastet und dadurch zu 0 wird, was natürlich gleich 0 ist.
                    mod = master of disaster

                    Kommentar


                    • #11
                      Ähem ja, das hatten wir schon

                      Kommentar


                      • #12
                        Danke Euch,

                        das sind sinnvolle Erklärungen !

                        Kommentar

                        Lädt...
                        X