= ist eine Zuweisung eines Wertes.
Also bewirkt $a=4, dass $a den Wert 4 erhält.
== ist ein Vergleich mit Typumwandlung
Bei if ($a==$b) wird der Wert von $a mit $b verglichen und notfalls der Typ angepasst, damit überhaupt verglichen werden kann.
=== ist ein Vergleich ohne Typumwandlung
Da man Äpfel mit Birnen nicht vergleichen kann, ergibt der Vergleich bereits das Ergebnis falsch wenn sich die Typen der Variablen unterscheiden - auch wenn letztlich der Wert (rein theoretisch) gleich zu sein scheint.
siehe Beispielscript:
Im ersten Beispiel erwartet man eigentlich, dass das Ergebnis "unterschiedlich" ergibt. Tut es aber nicht, da $b in den Typ von $a umgewandelt wird.Code:<?php $a=0; $b="000.00"; if ($a==$b) echo "Die sind gleich!<br>"; else echo "Nö, unterschiedlich"; $a=0; $b="0"; if ($a===$b) echo "Die sind gleich!"; else echo "Nö, unterschiedlich"; ?>
Intern wird also verglichen if ($a==intval("000.00") ) . Und da intval("000.00") = 0 ist, ergibt der Vergleich "wahr".
Im zweiten Beispiel erwartet man es genau andersherum.
Beide Variablen haben anscheinend dern Wert 0.
Nur ist $a ein Integerwert und $b ist eine Zeichenkette.
Apfel und Birne sind unterschiedlich und deshalb das Ergebnis "falsch".![]()
War das verständlich?


LinkBack URL
About LinkBacks
Zitieren