Heim > Artikel > Backend-Entwicklung > String- und Integer-Vergleich in PHP
Beim Umgang mit Schleifen in PHP gab es heute einen Vergleichsvorgang, aber das Ergebnis wurde von mir nie vorhergesagt. Deshalb habe ich es verfolgt und festgestellt, dass beim Vergleich von Zeichenfolgen mit Ganzzahlen die Zeichenfolgen in umgewandelt werden. Anschließend werden Ganzzahlen verglichen . In stark typisierten Sprachen wie Java und C stellt dies kein Problem dar, da sie die Zeichenfolgen konvertieren und dann vergleichen. In schwach typisierten Sprachen wie PHP kann es jedoch zu Problemen kommen, wenn direkte Vergleiche möglich sind gemacht.
$a = "梦回故里"; if($a==0){ echo "等于"; }else{ echo "不等于"; }
Zum Beispiel dachte ich zunächst, dass im folgenden Code „ungleich“ ausgegeben werden würde, da $a nach unserem Verständnis wahr sein sollte und 1 sein sollte, also ist es ohnehin nicht gleich. Aber das Ergebnis ist gleich. Da $a in eine Ganzzahl konvertiert wird, beginnt die Konvertierung ab dem ersten Zeichen. Wenn es keine Ganzzahl ist, wird es in 0 konvertiert.
Zum Beispiel im folgenden Beispiel:
$a = "梦回故里1"; if(0==$a){ echo "等于"; }else{ echo "不等于"; }
Dies wird immer noch gleich ausgegeben, da das A-Traumwort keine ganze Zahl ist, also wird es in 0 konvertiert.
$a = "1梦回故里"; if(0==$a){ echo "等于"; }else{ echo "不等于"; }
Dies wird immer noch ungleich ausgegeben, da das erste Wort 1 ist, das wird es in 1 umgewandelt und dann verglichen werden, sodass es nicht gleich ist.
Die PHP-Sprache ist so. Sie bietet uns genügend Freiheit und ist leicht zu erlernen, aber wir müssen ein solides Fundament legen und auf Details achten. Details entscheiden über Erfolg oder Misserfolg.
Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonString- und Integer-Vergleich in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!