Документация 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».
Кто-нибудь может объяснить, почему?
Спасибо