Seltsame Ergebnisse beim Vergleich von Zeichenfolgen mit Ganzzahlen
Beim Vergleich einer Zeichenfolge mit einer Ganzzahl können aufgrund der Typerzwingungsregeln von PHP einige unerwartete Ergebnisse auftreten. Im bereitgestellten Beispiel:
$test1 = "d85d1d81b25614a3504a3d5601a9cb2e"; $test2 = "3581169b064f71be1630b321d3ca318f"; if ($test1 == 0) echo "Test 1 is Equal!?"; if ($test2 == 0) echo "Test 2 is Equal!?";
Test 1 ist erfolgreich, da die Zeichenfolge „d85d1d81...“ keine gültigen numerischen Daten enthält und daher als 0 interpretiert wird.
Test 2 schlägt jedoch fehl weil die Zeichenfolge „3581169b...“ gültige numerische Daten enthält (den Anfangsbuchstaben „3581169“). Gemäß den Konvertierungsregeln von PHP wird dieser Anfangsteil verwendet, um den numerischen Wert zu bestimmen, der nicht 0 ist.
Das PHP-Handbuch erklärt, dass Zeichenfolgen wie folgt ausgewertet werden:
Im Fall von $test2, Beim Anfangsbuchstaben „3581169“ handelt es sich um gültige numerische Daten, daher ist der Wert nicht 0 und der Vergleich schlägt fehl.
Das obige ist der detaillierte Inhalt vonWarum führt der Vergleich einer Zeichenfolge mit 0 in PHP zu unerwarteten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!