Gnom: Was denn, == oder ===

Hallo,

wieso kann man so prüfen:
$erg=($a=="foo")? true:false;

und so:

$erg=($a==="foo")? true:false;

wo liegt der unterschied? was bedeutet das '==='...
irgendwie komme ich nun drucheinander.. ich dachte immer == dient zum vergleich..

danke für hilfe && einen schönen abend noch!

  1. Hallo!

    Hier wird alles erklärt: http://tut.php-q.net/vergleich.html#u2

    ciao, ww

    --
    Ein japanisch-deutsches Gedicht
    sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
  2. Hi

    wo liegt der unterschied? was bedeutet das '==='...
    irgendwie komme ich nun drucheinander.. ich dachte immer == dient zum vergleich..

    Stimmt auch. === dient auch zum Vergleich.
    Der Unterschied besteht darin, dass "===" zusätzlich prüft, ob die Typen der beiden Ausdrücke gleich sind.

    {code lang=php]
    $i =(int)1;
    if($i=="1")
    [/code}
    ergibt false.

    {code lang=php]
    $i =(int)1;
    if($i==1)
    [/code}
    ergibt true.
    (ich habe den Code nicht getestet, aber er muss so eigentlich stimmen)

    Tschausen
    %tul

    1. Hello,

      wo liegt der unterschied? was bedeutet das '==='...

      Kleine Richtigstellung und ein paar Erläuterungen:

      <?php    ### operator_equal.php ###

      $i = (int)1;              ## Bei der Zuweisung einer ganezen Zahl
                                ## würde $i automatisch den Typ integer annehmen

      if($i == "1")             ## liefert TRUE
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      $i = (int)1;

      if($i == 1)               ## liefert TRUE
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      if($i === "1")            ## liefert FALSE
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      $i = (int)1;

      if($i === 1)              ## liefert TRUE
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      auch ganz interessant

      $i = '';

      if($i == TRUE)
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      if($i === TRUE)
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      echo "<hr>";

      if($i === FALSE)
      {
        echo "TRUE";
      }
      else
      {
        echo "FALSE";
      }

      ?>

      ==    prüft auf Gleichheit, besser ausgedrückt,
            ob sich die beiden Seiten gleichen

      ===   prüft auf Identität, also ob der Inhalt der línken Seite
            und der rechten sowohl vom Wert, als auch vom Typ übereinstimmen

      Probier einfach mal ein paar Sachen aus. Das ist besser, als nur Büchern zu glauben ;-)

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau