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

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] If Abfrage bei unterschiedlichen Variablentypen.

    [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?

  • Gast-Avatar
    Ein Gast antwortete
    Danke Euch,

    das sind sinnvolle Erklärungen !

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ähem ja, das hatten wir schon

    Einen Kommentar schreiben:


  • Waq
    antwortet
    Weil zum Vergleichen der String 'dummy' nach Integer gecastet und dadurch zu 0 wird, was natürlich gleich 0 ist.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Probier's doch aus.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Die Zeichenkette 'dummy' wird für den Vergleich in eine Ganzzahl umgewandelt und (int)'dummy' ist 0.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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 !

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    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";

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Lieber csmcg,

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

    Einen Kommentar schreiben:

Lädt...
X