wake-up-neo.com

Was bedeutet "==="?

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.

55
Stefan Konno
$a === $b     (Identical)      

[~ # ~] true [~ # ~] if $a entspricht $b, und sie sind vom gleichen Typ. (eingeführt in PHP 4)

PHP Docs

68
Tim Sylvester

http://www.php.net/ternary

$ 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
58
Dykam

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.

12
Artem Barger

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

9
farzad

$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
}
6
anik4e

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.

4
Keith

Das Dreifach-Gleichheitszeichen === prüft, ob zwei Variablen gleich und vom gleichen Typ sind.

3
Jon

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.

1
umar

Für PHP gibt es viele verschiedene Bedeutungen, die eine Null annehmen kann

  1. es kann ein Boolescher Fehler sein
  2. es könnte ein Nullwert sein
  3. Es könnte wirklich eine Null sein

Daher wird === hinzugefügt, um sicherzustellen, dass Typ und Wert identisch sind.

1
Extrakun

"===" Entspricht dem Wert in der Variablen sowie dem Datentyp der Variablen.

0
manoj kumar