为什么 "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 的更多信息。