Mir ist aufgefallen, dass jemand den Operator PHP= ===
Verwendet, aus dem ich keinen Sinn machen kann. Ich habe es mit einer Funktion versucht und es entspricht auf verrückte Weise.
Was ist die Definition dieses Operators? Ich kann es nicht einmal in der Deklaration von PHP Operatoren finden.
$a === $b (Identical)
[~ # ~] true [~ # ~] if
$a
entspricht$b
, und sie sind vom gleichen Typ. (eingeführt in PHP 4)
$ a == $ b ist gleich TRUE, wenn $ a gleich $ b ist, mit Ausnahme von (True == -1), das immer noch True ist.
$ a === $ b Identisch TRUE, wenn $ a gleich $ b ist und sie vom gleichen Typ sind.
> "5" == 5;
True
> "5" === 5;
False
Sie können lesen hier , kurze Zusammenfassung:
$ a == $ b Gleich WAHR, wenn $ a nach dem Typ Jonglieren gleich $ b ist.
$ a === $ b Identisch TRUE, wenn $ a gleich $ b ist und sie vom gleichen Typ sind.
In PHP können Sie zwei Werte mit dem Operator == oder dem Operator === vergleichen. Der Unterschied ist folgender:
PHP ist eine dynamische, interpretierte Sprache, die nicht streng auf Datentypen ist. Dies bedeutet, dass die Sprache selbst bei Bedarf versucht, Datentypen zu konvertieren.
echo 4 + "2"; // output is 6
Die Ausgabe ist ein ganzzahliger Wert von 6, da +
ist der numerische Additionsoperator in PHP. Wenn Sie also Operanden mit anderen Datentypen versehen, konvertiert PHP konvertiert sie zuerst in den entsprechenden Typ ("2" wird in 2 konvertiert) und führen Sie dann den Vorgang aus.
Wenn Sie == als Vergleichsoperator mit zwei Operanden verwenden, die sich möglicherweise in verschiedenen Datentypen befinden, konvertiert PHP den zweiten Operandentyp in den ersten. Also:
4 == "4" // wahr
PHP konvertiert "4" in 4 und vergleicht dann die Werte. In diesem Fall ist das Ergebnis wahr.
Wenn Sie === als Vergleichsoperator verwenden, versucht PHP keine Datentypen zu konvertieren. Wenn also die Typen der Operanden unterschiedlich sind, sind sie NICHT identisch.
4 === "4" // false
$x == $y
ist WAHR, wenn der Wert von $ x und $ y gleich ist:
$x = 1; //int type
$y = "1"; //string type
if ($x == $y) {
// This will execute
}
$x === $y
TRUE wenn der Wert von $ x und $ y gleich ist und der Typ von $ x und $ y gleich ist:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}
Sie werden diesen Operator in vielen dynamisch getippten Sprachen sehen, nicht nur in PHP.
==
Wird versuchen, alles, womit es zu tun hat, in Typen umzuwandeln, die es vergleichen kann.
===
Vergleicht streng den Typ und den Wert.
In jeder dynamisch getippten Sprache, mit der Sie vorsichtig sein müssen, kann es zu interessanten Fehlern kommen.
Das ternäre ===
Ist weniger praktisch, aber sicherer. Für Vergleiche sollten Sie immer zusätzlich überlegen, ob es sich um ===
Oder ==
Handeln soll.
Das Dreifach-Gleichheitszeichen === prüft, ob zwei Variablen gleich und vom gleichen Typ sind.
Siehe Doppel- und Dreifach-Gleichheitsoperator in PHP, dass ich zum googeln auf "PHP drei Gleichheitsoperator" bekam.
Irgendwann heißt es:
Ein Doppel = Zeichen ist ein Vergleich und prüft, ob die Variable/Ausdruck/Konstante links den gleichen Wert wie die Variable/Ausdruck/Konstante rechts hat.
Ein Triple = Vorzeichen ist ein Vergleich, um festzustellen, ob zwei Variablen/Ausdrücke/Konstanten gleich sind UND denselben Typ haben - d. H. Beide sind Zeichenfolgen oder beide sind ganze Zahlen.
Es gibt auch ein Beispiel, um es zu erklären.
Für PHP gibt es viele verschiedene Bedeutungen, die eine Null annehmen kann
Daher wird === hinzugefügt, um sicherzustellen, dass Typ und Wert identisch sind.
"===" Entspricht dem Wert in der Variablen sowie dem Datentyp der Variablen.