PHP на этой функции немного скудны, и я читал, что эта функция сравнивает значения ASCII так ...Почему "echo strcmp ('60 ',' 100 '); в php-выходе 5? документация
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
The STRCMP() функции в ы Айинг, что «60» является «больше», чем «100», даже если кажется, что значение ASCII и длина строки «100» больше «60»
Может кто-нибудь объяснить, почему?
Благодаря
Обратите внимание, что это не гарантированное поведение - гарантируется только то, что для этих входных параметров значение будет больше нуля. –
@SimonRichter: Согласен, что это не гарантируется. Но это * традиционно. Некоторый код, который я написал в 1978 году, который зависит от этого метода вычисления возвращаемого значения *, все еще работает *! – wallyk
@wallyk, откуда вы знаете, что этот ответ правильный, когда в документации не было сказано, что он возвращает разницу первого символа? – Pacerier