Vergleich von String zu Integer gibt merkwürdige Ergebnisse

Ich bin wirklich verwirrt, warum dieser Vorgang funktioniert. Kann sich das jemand erklären?

$test1 = "d85d1d81b25614a3504a3d5601a9cb2e";
$test2 = "3581169b064f71be1630b321d3ca318f";

if ($test1 == 0)
  echo "Test 1 is Equal!?";
if ($test2 == 0)
  echo "Test 2 is Equal!?";

//Returns: Test 1 is Equal!?

Zur Klarstellung, ich bin versucht zu vergleichen, den string "0" zu den $test Variablen. Ich weiß schon, zu beheben, den code kann ich nur schließen (wie ich sollte) die 0 im ""s

Frage ich mich, ob dies ist ein PHP-bug, ein server bug, oder irgendwie eine gültige operation. Nach http://us3.php.net/types.comparisons diese sollte nicht gearbeitet haben.

Edit: Kratzer,, anscheinend nicht zu erwähnen, dass Lose Vergleiche zwischen string-und die 0 wahr ist. Aber ich weiß immer noch nicht, warum.

Edit 2: habe ich überarbeitet meine Frage, warum die $test2 Wert von "3581169b064f71be1630b321d3ca318f" nicht funktionieren?

die $test den Wert nicht funktioniert?
Wenn Sie den code ausführen, es gibt nur Test 1 is Equal!?
echo (int) $test2;

InformationsquelleAutor St. John Johnson | 2009-03-23

Schreibe einen Kommentar