Документация PHP по этой функции немного разрежена, и я прочитал, что эта функция сравнивает значения ASCII, поэтому...
echo strcmp('hello', 'hello');
//outputs 0 as expected - strings are equal.
echo '<hr />';
echo strcmp('Hello', 'hello');
//outputs -32, a negative number is expected as
//uppercase H has a lower ASCII value than lowercase h.
echo '<hr />';
echo strcmp('60', '100');
//outputs 5.
Последний пример меня смущает. Я не понимаю, почему он выводит положительное число.
- ASCII Значение 0 = 48
- ASCII Значение 1 = 49
-
Значение ASCII 6 = 54
-
Общее значение ASCII '60' = (54 + 48) = 102
- Общее значение ASCII '100' = (49 + 48 + 48) = 145
Функции strcmp() говорят, что "60" "больше", чем "100", хотя кажется, что значение ASCII и длина строки "100" больше, чем "60"
Может ли кто-нибудь объяснить, почему?
Спасибо