If-Bedingung true, warum?

  • Code
    $x = "irgenteinstring";
    $i = 0;
    if ($x == $i) {
    	echo " (MainCard)";
    }

    Ausgabe:
    (MainCard)


    Kann theoretisch nicht sein oder? Ist bei mir aber so. Sitze seit einer Stunde dran das Problem zu finden.

    Was könnten Ursachen dafür sein?

    EDIT: Mir ist aufgefallen dass dies nur für $x = 0; so ist. Mit anderen Zahlen oder Strings funktionierts... also:
    Es liegt an der 0 (Null), aber warum?

  • Wie man das anders lösen kann wollt ich aber gar nicht wissen! ;) Das weiß ich auch selber... mich interessiert nur warum das so ist.

    === wollt ich aber aus bestimmten Gründen gar nicht verwenden...

    Das Ding ist, dass beim Vergleich mit einer int-Variable der string automatisch auch zu integer gemacht wird... und jeder string in dem keine zahl vorkommt ist dann halt 0...
    vermute ich zumindest...