Der Inhalt dieses Artikels befasst sich mit dem Vergleich von Zahlen und Zeichenfolgen in PHP. Jetzt kann ich ihn mit Ihnen teilen.
Vergleichsoperationen in PHP Symbole sind etwas seltsam und es kann leicht zu Fehlern kommen:
1. Wenn die Größe zweier Zeichen verglichen wird, wird die ASCII-Codegröße der beiden Zeichen verglichen – das ist leicht zu verstehen.
2. Wenn zwei Zeichenfolgen in ihrer Größe verglichen werden, beginnen sie mit dem ersten Zeichen und vergleichen die entsprechenden ASCII-Größen, solange sie mit der aktuellen Position einer der Zeichenfolgen beginnen größer ist als das entsprechende Zeichen in einer anderen Zeichenfolge, kann die Größe der beiden Zeichenfolgen direkt bestimmt werden, z. B. 'ba'>'az' - das weiß jeder.
Vergleichen Sie dann '10' und 'a', natürlich ist es immer noch dasselbe. Vergleichen Sie zuerst den ASCII-Code '1' und 'a', 'a' ist größer.
3. Wenn eine Zahl mit einer Zeichenfolge/einem Zeichen verglichen wird, versucht das System zunächst, die Zeichenfolge/das Zeichen in einen Ganzzahl-/Gleitkommatyp umzuwandeln, und vergleicht es dann zu 12. 'a' wird in 0 umgewandelt. Es ist zu beachten, dass zu diesem Zeitpunkt der entsprechende ASCII-Codewert nicht mit der Zahl verglichen wird.
Tatsächlich ist das Ergebnis von 'a'+10 auf die gleiche Weise auch 10.
Und was man leicht ignorieren kann: 0 wird mit einer beliebigen Zeichenfolge verglichen, die nicht in eine Zahl umgewandelt werden kann (der Operator ist ==), und alles gibt true zurück.
Am Ende wird folgendes Ergebnis erscheinen:
1 var_dump('1000000'<'a'); //result: boolean true2 var_dump('a'<1); //result: boolean true3 var_dump(1<'1000000'); //result: boolean true
Es unterscheidet sich ein wenig von der herkömmlichen Denkweise. .
Nachdruckadresse: http://www.cnblogs.com/lwbqqyumidi/archive/2013/01/31/2887086.html
Das obige ist der detaillierte Inhalt vonVergleich von Zahlen und Strings in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!