比较数字字符串

Kir*_*iva 5 php

PHP中的Type-juggling和(严格)大于/小于比较的问题

我知道PHP会尽可能地将字符串解释为数字.

"10" < "1a"  => 10 less than 1      expecting  false 
"1a" < "2"   => 1 less than 2       expecting  true
"10" > "2"   => 10 greater than 2   expecting  true
Run Code Online (Sandbox Code Playgroud)

但在"10" < "1a"php 的情况下返回true.

我不理解这个概念,请帮我澄清一下.

编辑:

但是当我添加"10" + "1a"它时返回11表示php将"10"解释为10并将"1a"解释为1.这是正确的吗?

小智 5

A 在 9 之后。你可以在这个字符串中看到这个,从低到高排序。

0123456789abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

所以10小于1a。


TiM*_*TER 4

这很简单1a,不是数字。因此,PHP 会与大多数文本编码表中的字母字符之前的数字进行比较string(2)"10"string(2)"1a"查看ASCIIUTF-8字符表)。

所以1of10等于1of1a并且0of10低于aof 1a。结果10低于1a