Почему значение "a"> "b" равно false? (Как PHP сравнивает строковые символы)
Почему значение "a" > "b"
равно false?
Это, конечно, не так из-за алфавита. Но как PHP узнает, что a
меньше, чем b
?
var_dump("a" > "b"); //boolean false
1 answers
Но как 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
.