-2
Bei der Entwicklung einer PHP-Anwendung stieß ich auf diese seltsame Eigenart.Warum ist "01" == "1", "000333" == "333", usw. wahr?
Offenbar ist die Zeichenfolge '01' == '1'
, '05' == '5'
, '03111' == '3111'
. Ich habe versucht, diese -
php > $numbers = ["1", "2", "3", "4", "5"];
php > in_array("01", $numbers);
true
php > var_dump("01" == "1");
true
php > var_dump("00003333" == "3333")
true
Wie verhindere ich dies (das heißt für die in_array
Aufruf false zurück), und warum ist es in erster Linie geschieht?
Verwendung 3 Gleichheitszeichen '' === – 123
PHP-Handbuch einige Richtlinien hat auf Variablentypen und deren Auswirkung in Vergleichen. http://php.net/manual/en/language.operators.comparison.php –
FYI: 'in_array()' macht einen lockeren Vergleich standardmäßig, so ist es im Grunde das gleiche wie '==' und dafür auch die Der gleiche Grund, warum es genauso funktioniert. Es ist auch die gleiche Lösung, um es mit '==' und 'in_array()' zu lösen, um nur den gleichen Vergleich zu verwenden. – Rizier123