Was bedeutet “===”?

Lesezeit: 4 Minuten

Mir ist aufgefallen, dass jemand den PHP-Operator verwendet === woraus ich keinen Sinn machen kann. Ich habe es mit einer Funktion versucht, und es entspricht auf verrückte Weise.

Wie ist dieser Operator definiert? Ich kann es nicht einmal in der Deklaration von PHP-Operatoren finden.

  • mögliches Duplikat von stackoverflow.com/questions/80646/…

    – QUentin

    10. April 2010 um 19:01 Uhr

Was bedeutet
Tim Sylvester

$a === $b     (Identical)      

WAHR wenn $a ist gleich $b, und sie sind vom gleichen Typ. (eingeführt in PHP 4)

PHP-Dokumente

  • Als Anmerkung, dieser Gleichheitsoperator erscheint auch in Javascript und ich glaube Perl. Es ist ziemlich üblich.

    – Samantha Branham

    13. Juli 2009 um 6:41 Uhr

  • Beachten Sie auch, dass das == auch als „mal-sehen-was-ich-daraus-machen-kann“-Operator bekannt ist, da es zu Perlen wie „100“ == „1e2“ und 0 == „führt. ein”.

    – Ameisen Aasma

    13. Juli 2009 um 6:52 Uhr

  • Da ich nicht viel über PHP weiß, verstehe ich die 100 = 1e2 (10 * 10 ^ 2), aber ich verstehe die “0” == “eins” nicht? Kann mir das jemand erklären?

    – Ksempac

    13. Juli 2009 um 7:28 Uhr

  • Ich glaube, er meinte “1” == “eins”. Der Operator == ist so, als würde er PHP sagen, dass er die linken und rechten Seitenausdrücke so analysieren und verarbeiten darf, dass die Werte gleich werden. Das === ist wie zu sagen, führen Sie hier einen binären Vergleich durch.

    – Dykam

    13. Juli 2009 um 8:31 Uhr

  • @Ksempac: Die zweite Zeichenfolge “Eins” wird nicht als Zahl 1, sondern als Zahl 0 analysiert, daher sind sie gleich.

    – Tim Sylvester

    13. Juli 2009 um 17:14 Uhr

Was bedeutet
Dykam

http://www.php.net/ternary

$a == $b Gleich TRUE, wenn $a gleich $b ist, mit Ausnahme von (True == -1), was immer noch True ist.

$a === $b Identisch WAHR, wenn $a gleich $b ist und sie vom gleichen Typ sind.

> "5" == 5;
True
> "5" === 5;
False

  • Nicht wahr. Die drei Gleichheitszeichen geben falsch zurück, wenn $a und $b Objekte derselben Klasse sind und dieselben Werte für alle ihre (jeweiligen) Eigenschaften haben. Probieren Sie es selbst aus: class FirstClass { public $a; öffentlich $b; Funktion FirstClass() { $this -> a = 1; $dies -> b = 1; } } $first = new FirstClass(); $zweite = neue FirstClass(); if($first === $second) { echo “dreifach gleich!”; } else { echo “dreifach ungleich!”; }

    – Wladimir Despotovic

    15. März 2016 um 12:25 Uhr


  • Dykam, genau mein Punkt – aber ich vergleiche nichts. Ich sage nur, dass bei Objekten nicht der WERT über === verglichen wird, sondern die eigentliche Referenz. IE. sie können völlig die gleichen Objekte sein, das heißt, mit völlig gleichen Werten, aber === zeigt immer noch falsch an, weil sie nicht die gleiche Referenz sind.

    – Wladimir Despotovic

    15. März 2016 um 14:24 Uhr


  • Sie sagten: $a === $b Identisch WAHR, wenn $a gleich $b ist und sie vom gleichen Typ sind. Ich sage nur, das stimmt überhaupt nicht. Punkt.

    – Wladimir Despotovic

    15. März 2016 um 14:27 Uhr

  • Einfaches Kopieren und Einfügen von php.net bedeutet nicht immer, dass es korrekt ist.

    – Wladimir Despotovic

    15. März 2016 um 14:28 Uhr

  • Wenn es sich tatsächlich um dasselbe Objekt handelt, lassen sie sich gut vergleichen. Der Wert der Referenz wird verglichen, nicht die Instanz, auf die sie zeigt. Wenn überhaupt, ist es eine Frage der Definition, aber dies ist die häufigste, der ich begegnet bin.

    – Dykam

    15. März 2016 um 16:09 Uhr

1645731248 470 Was bedeutet
Artem Barger

Du kannst lesen Hierkurze Zusammenfassung:

$a == $b Gleich TRUE, wenn $a gleich $b nach Typ-Jonglage ist.

$a === $b Identisch WAHR, wenn $a gleich $b ist und sie vom gleichen Typ sind.

  • Ich komme mir jetzt ziemlich blöd vor, dass du es so schnell gefunden hast, ich habe versucht, es ohne großen Erfolg zu googeln.. Danke trotzdem an alle.

    Stefan Konno

    13. Juli 2009 um 6:43 Uhr

  • In php.net haben Sie Antworten auf 99% Ihrer Fragen dazu.

    – Artem Barger

    13. Juli 2009 um 6:46 Uhr

1645731248 87 Was bedeutet
farzad

In PHP können Sie zwei Werte mit dem Operator == oder === vergleichen. Der Unterschied ist dieser:

PHP ist eine dynamische, interpretierte Sprache, die bezüglich Datentypen nicht streng ist. Dies bedeutet, dass die Sprache selbst versucht, Datentypen bei Bedarf zu konvertieren.

echo 4 + "2"; // output is 6

Die Ausgabe ist der ganzzahlige Wert 6, weil + ist der numerische Additionsoperator in PHP. Wenn Sie ihm also Operanden mit anderen Datentypen zur Verfügung stellen, konvertiert PHP sie zuerst in ihren entsprechenden Typ (“2” wird in 2 konvertiert) und führt dann die Operation aus.

Wenn Sie == als Vergleichsoperator mit zwei Operanden verwenden, die möglicherweise unterschiedliche Datentypen haben, konvertiert PHP den zweiten Operandentyp in den ersten. Damit:

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, dann sind sie NICHT identisch.

4 === “4” // falsch

Was bedeutet
anik4e

$x == $y ist TRUE, wenn die Werte von $x und $y gleich sind:

$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 sind und der Typ von $x und $y gleich ist:

$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
    // This will not execute
}

1645731249 251 Was bedeutet
Keith

Sie werden diesen Operator in vielen dynamisch typisierten 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 typisierten Sprache müssen Sie mit == vorsichtig sein, Sie können einige interessante Fehler bekommen.

Die Dreiheit === ist weniger bequem, aber sicherer. Bei Vergleichen sollte man sich immer zusätzlich Gedanken machen, ob es sein sollte === oder ==

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

846010cookie-checkWas bedeutet “===”?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy