关于这个函数的PHP文档有点稀疏,我已经读过这个函数比较ASCII值所以......
echo strcmp('hello', 'hello');
//outputs 0 as expected - strings are equal.
echo '<hr />';
echo strcmp('Hello', 'hello');
//outputs -32, a negative number is expected as
//uppercase H has a lower ASCII value than lowercase h.
echo '<hr />';
echo strcmp('60', '100');
//outputs 5.
最后一个例子令我困惑。我不明白为什么输出正数。
ASCII值为6 = 54
'60'的总ASCII值=(54 + 48)= 102
strcmp()函数表示'60'比'100'“更大”,即使似乎ASCII值和字符串长度'100'大于'60'
任何人都可以解释原因吗?
由于
答案 0 :(得分:13)
strcmp()
返回字符串之间第一个不匹配字符的差异。
6
- 1
为5。
当你看它时,你可能看不到字符或数字 - 只是数字
答案 1 :(得分:8)
因为strcmp()
在找到的第一个差异处停止。因此,“1”的ASCII值与“6”的ASCII值
答案 2 :(得分:5)
6比1大5“。这是词汇比较。第一个字符是不同的,这就是比较停止的地方。