Wann === und wann nur == ?

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

  • Wann === und wann nur == ?

    Hallo,

    man sagte mir ich muss in untenstehenden Fall === verwenden anstatt nur ==

    PHP-Code:
    function eingeloggt()
    {if(isset(
    $_SESSION['session_username'])){return true;}}

    if(
    eingeloggt() == true){...} 
    Was stimmt denn nun?

  • #2
    === überprüft zusätzlich ob die Datentypen übereinstimmen ... in deinem Falle wäre === angebracht
    PHP-Code:
    === true // false
    true === true // true 
    Liebe Grüße,
    SteKoe!

    PHP Tutorials
    Peter Kropff | Quakenet | Schattenbaum.net

    Kommentar


    • #3
      man sagte mir ich muss in untenstehenden Fall === verwenden anstatt nur ==
      Müssen tust du gar nichts In den meisten Fällen reicht == aus. Nur wenn die Fkt z.B. false oder einen Integer zurückgeben kann, könnte was falsches dabei rauskommen. Der "Klassiker" ist strpos()
      PHP-Code:
      if(strpos('Das','Das Haus ist leer') == false){
        echo 
      'Suchstring wurde nicht gefunden';
      }else{
        echo 
      'Suchstring gefunden';

      Da strpos() als Position des Suchstrings int 0 zurückgibt würde ein == diese 0 als false werten und somit ein falsches Resultat ergeben.
      Der ===-Vergleich ist dort wichtig wo du dich im Umfeld von register globals on bewegst
      PHP-Code:
      if($login == true){
        echo 
      'Geheimer Inhalt';
      }else{
        echo 
      'Nicht erlaubter Zugriff';

      Obiger Code könnte mit dem Anfügen einer GET Var Namens login und dem Wert 1 umgangen werden (natürlich nur wenn login nicht zuvor sauber initialisiert wurde).

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar

      Lädt...
      X