Viele Leute in PHP verstehen immer noch nicht den Unterschied zwischen 0, „“, null und false in PHP. Diese Unterschiede wirken sich manchmal auf die Richtigkeit und Sicherheit der Datenbeurteilung aus und verursachen große Probleme beim Testlauf des Programms .
Schauen wir uns zunächst ein Beispiel an:
$str1 = null;
$str2 = false;
echo $str1 == $str2 ? 'Gleich' : 'Nicht gleich';
$str3 = "";
$str4 = 0;
echo $str3==$str4 ? ' Gleich' : 'Nicht gleich';
$str5 = 0;
$str6 = '0';
echo $str5===$str6 ? Gleich': 'Nicht gleich';
$str7=0;
$str=false;
echo $str7==$str8 ? 'Gleich': 'Nicht equal' ;
?>
Laufergebnis:
//Gleich, gleich, nicht gleich, gleich.
Der Grund dafür ist, dass Variablen in PHP in C-Sprachstrukturen gespeichert werden. Leere Zeichenfolgen, NULL und false werden alle mit dem Wert 0 gespeichert. Diese Struktur hat einen zend_uchartype; Solche Mitgliedsvariablen werden verwendet um den Typ der Variablen zu speichern, und der Typ der leeren Zeichenfolge ist string, der Typ von NULL ist NULL und false ist boolesch.
Sie können echo gettype(''); und echogettype(NULL); verwenden, um dies zu drucken! Der ===-Operator vergleicht nicht nur Werte, sondern auch Typen, daher ist der dritte Operator falsch!
Man kann also sagen, dass === gleich der folgenden Funktion ist:
Funktioneq($v1,$v2)
{
if($v1==$v2&&gettype ($v1)
==gettype($v2)) {
return1 ;
} else {
return0;
}
}
so leer String (''), false, NULL und 0 sind im Wert gleich, aber unterschiedlich im Typ!
Hinweis:
NULL ist ein besonderer Typ.Das Obige stellt die Unterschiede zwischen 0, „“, null und false in PHP vor, einschließlich relevanter Inhalte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.