为什么 "a" > "b" 的计算结果为 false? (PHP如何比较字符串字符)
Why does "a" > "b" evaluates to false? (How does PHP compares string characters)
为什么 "a" > "b"
的计算结果为 false?
由于字母表的原因,这是偏离路线的。但是PHP怎么知道a
小于b
呢?
var_dump("a" > "b"); //boolean false
But how does php knows that "a" is smaller then "b"?
PHP 获取字符的 ASCII 值并进行比较。所以这就是 PHP 决定哪个字符比另一个字符 "smaller" 的方式。
ASCII table:
所以在你的例子中:
a = 97 //'97' is the ASCII value from 'a'
b = 98 //'98' is the ASCII value from 'b'
var_dump("a" > "b"); //boolean false
var_dump(97 > 98); //The same
您可以通过ord()
获取字符的ASCII值,例如
echo ord("a"); //output 97
相反的是 chr()
,它给你 ASCII 值的字符,例如
echo chr(97); //output a
以及有关 ASCII
的更多信息。
为什么 "a" > "b"
的计算结果为 false?
由于字母表的原因,这是偏离路线的。但是PHP怎么知道a
小于b
呢?
var_dump("a" > "b"); //boolean false
But how does php knows that "a" is smaller then "b"?
PHP 获取字符的 ASCII 值并进行比较。所以这就是 PHP 决定哪个字符比另一个字符 "smaller" 的方式。
ASCII table:
所以在你的例子中:
a = 97 //'97' is the ASCII value from 'a'
b = 98 //'98' is the ASCII value from 'b'
var_dump("a" > "b"); //boolean false
var_dump(97 > 98); //The same
您可以通过ord()
获取字符的ASCII值,例如
echo ord("a"); //output 97
相反的是 chr()
,它给你 ASCII 值的字符,例如
echo chr(97); //output a
以及有关 ASCII
的更多信息。