PHP-Typvergleich

Obwohl PHP eine schwach typisierte Sprache ist, ist es dennoch notwendig, Variablentypen und ihre Bedeutungen zu verstehen, da wir häufig PHP-Variablen vergleichen müssen, einschließlich lockerer und strenger Vergleiche.

  • Lockerer Vergleich: Verwenden Sie zwei Gleichheitszeichen==Beim Vergleich werden nur die Werte verglichen, nicht die Typen.
  • Strenger Vergleich: Verwenden Sie drei Gleichheitszeichen===Beim Vergleich werden zusätzlich zu den Werten auch die Typen verglichen.

Zum Beispiel ist "42" eine Zeichenkette, während 42 eine Ganzzahl ist.FALSEist ein boolescher Wert und"FALSE"ist eine Zeichenkette.

Beispiel

<?php if(42 == "42") { echo '1. Gleiche Werte'; } echo PHP_EOL; //Zeilenumbruchzeichen if(42 === "42") { echo '2. Gleiche Typen'; } else { echo '3. Typen sind nicht gleich'; } ?>

Die Ausgabe des obigen Beispiels ist:

1、值相等
3、类型不相等

Vergleich von 0, false, null in PHP

Testcode:

Beispiel

<?php echo '0 == false: '; var_dump(0 == false); echo '0 === false: '; var_dump(0 === false); echo PHP_EOL; echo '0 == null: '; var_dump(0 == null); echo '0 === null: '; var_dump(0 === null); echo PHP_EOL; echo 'false == null: '; var_dump(false == null); echo 'false === null: '; var_dump(false === null); echo PHP_EOL; echo '"0" == false: '; var_dump("0" == false); echo '"0" === false: '; var_dump("0" === false); echo PHP_EOL; echo '"0" == null: '; var_dump("0" == null); echo '"0" === null: '; var_dump("0" === null); echo PHP_EOL; echo '"" == false: '; var_dump("" == false); echo '"" === false: '; var_dump("" === false); echo PHP_EOL; echo '"" == null: '; var_dump("" == null); echo '"" === null: '; var_dump("" === null);

Die Ausgabe des obigen Beispiels ist:

0 == false: bool(true)
0 === false: bool(false)

0 == null: bool(true)
0 === null: bool(false)

false == null: bool(true)
false === null: bool(false)

"0" == false: bool(true)
"0" === false: bool(false)

"0" == null: bool(false)
"0" === null: bool(false)

"" == false: bool(true)
"" === false: bool(false)

"" == null: bool(true)
"" === null: bool(false)

Andere Erweiterungen