Hallo Leute
Ich hab ein riesen Durcheinander im Kopf. Welche Programmiersprache bietet den "===" Operator an, um Werte zu vergleichen die auch noch denselben Typ haben müssen?
int x = 5;
short y = 5;
int z = 5;
if (x == y) //true
if (x === y) //false
if (x === z) //true
Ich weiss, dass ich das schon irgendwo gesehen habe, aber wo? Zur Auswahl stehen: .Net (ists nicht), Java, PHP (haha), C, C++, Perl, Python, Eiffel, Ada, Lisp (eher weniger), Prolog
Nicht erschrecken, ich beherrsche keine einzige 😉 Bei den Programmiersprachen nach C++ in der Liste hatte ich nur eine kleine Einführung mit den basic Befehlen
[EDIT]: Google, omgili, search.ch filtern = eben weg, darum ist die Internetsuche schwierig 😦
$a === $b
Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind (seit PHP 4).
http://de.wikipedia.org/wiki/Vergleichsoperator
S.
Hallo martinO,
Google, omgili, search.ch filtern = eben weg, darum ist die Internetsuche schwierig
Guckst du bei der Google Code Search nach \w===\w ganz oben:
"Also try: \w===\w lang:**javascript **\w===\w lang:**php **\w===\w lang:xpm".
Gruß,
dN!3L
Der '==='-Operator macht auch nur bei Sprachen mit dynamischen Datentypen Sinn (daher fallen die "üblichen Verdächtigen" raus -).
Der '==='-Operator macht auch nur bei Sprachen mit dynamischen Datentypen Sinn (daher fallen die "üblichen Verdächtigen" raus -).
class Caprio : Car {
}
//...
Car x;
Caprio y;
if (x === y) {} // True wenn in der Variable Car auch ein Caprio steckt
Ich weiß es gibt den "is" Operator. Aber ganz so weit hergeholt finde ich mein Beispiel jetzt nicht.
Hallo Tarion,
da === den Typ und den Wert vergleicht, taugt es aber nicht als Ersatz für is.
Hallo zusammen,
in PHP ist wegen der sehr weitgehenden automatischen Typumwandlung 0 == "" und auch true == "falsch". So praktisch die automatische Typumwandlung in vielen Fällen ist, ist das nicht immer, was man will. Deshalb braucht man den ===-Operator, der z.B. 0 und "" als unterschiedlich betrachtet, weil er zusätzlich zur Wertgleichheit auch die Typgleichheit prüft.
Der ===-Operator prüft also nicht, wie das an verschiedenen Stellen im Netz zu lesen ist, auf Identität, wie das der Standard-Referenzvergleich == in C# tut, sondern nur auf Wert- und Typgleichheit.
herbivore