Почему "a" > "b"
оценивает как ложное?
Это извращение из-за алфавита. Но как PHP знает, что a
меньше чем b
?
var_dump("a" > "b"); //boolean false
Но как php узнает, что «a» меньше, чем «b»?
PHP берет ASCII значения символов и сравнить их. Так вот, как PHP решает, какой символ «меньше», чем другой.
ASCII таблица:
Итак, в вашем примере:
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
Вы можете получить значение ASCII символа с ord()
, например
echo ord("a"); //output 97
И наоборот chr()
который дает вам символ для значения ASCII, например,
echo chr(97); //output a
И для получения дополнительной информации о ASCII
.
Других решений пока нет …