比较数字字符串
从PHP中的类型杂耍和(严格)更大/更小比较的问题
我知道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
但在"10" < "1a"的情况下,php返回true。
我不理解这个概念,请帮我澄清一下。
编辑:
但是当我添加"10" + "1a"它返回11,这意味着php将“10”解释为10,“1a”解释为1。那是正确的吗?
这很容易1a不是数字。 所以PHP将string(2)"10"与string(2)"1a"并且数字位于大多数文本编码表中的字母字符之前(查看ASCII或UTF-8字符表)。
所以1的10是等于1的1a和0的10低于a的1a 。 结果10比1a低。
A在9之后。你可以在这个字符串中看到它,从低到高排序。
0123456789abcdefghijklmnopqrstuvwxyz
所以10比1a要低。
如果你想确定,比较数字,把(type)放在变量前面:
(int)"10" < (int)"1a"
(int)"1a" < (int)"2"
(int)"10" > (int)"2"
链接地址: http://www.djcxy.com/p/10035.html
