Heim >Backend-Entwicklung >PHP-Tutorial >Warum führt der Vergleich einer Zeichenfolge mit 0 in PHP zu unerwarteten Ergebnissen?

Warum führt der Vergleich einer Zeichenfolge mit 0 in PHP zu unerwarteten Ergebnissen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-07 11:44:11148Durchsuche

Why Does Comparing a String to 0 in PHP Produce Unexpected Results?

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:

  • Wenn es „.“, „e“ oder „E“ enthält, ist es ein Float.
  • Andernfalls ist es ein Ganzzahl.
  • Wenn es mit gültigen numerischen Daten beginnt, ist das der Wert.
  • Andernfalls ist der Wert 0.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn