Почему значение "a"> "b" равно false? (Как PHP сравнивает строковые символы)


Почему значение "a" > "b" равно false?

Это, конечно, не так из-за алфавита. Но как PHP узнает, что a меньше, чем b?

var_dump("a" > "b"); //boolean false
Author: Julian S, 2015-03-12

1 answers

Но как php узнает, что "a" меньше, чем "b"?

PHP принимает значения символов ASCII и сравнивает их. Так вот как PHP решает, какой символ "меньше" другого.

Таблица ASCII:

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

Вы можете получить значение ASCII символа с помощью ord(), например,

echo ord("a");  //output 97

И наоборот chr() что дает вам символ для значения ASCII, например

echo chr(97);  //output a

И для получения дополнительной информации о ASCII.

 2
Author: Rizier123, 2015-03-12 16:10:03