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
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
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)

