substr_compare возвращает неправильные повторы - PullRequest
0 голосов
/ 18 апреля 2011

В руководстве по PHP приведен пример

echo substr_compare("abcde", "bcg", 1, 2); // 0

Я протестировал код и получил тот же результат, но как "bc" и "bcg" могут быть равны? Это должно дать -1. Я что-то здесь упускаю?

Ответы [ 2 ]

4 голосов
/ 18 апреля 2011

Внимательно прочитайте документацию :

substr_compare() сравнивает main_str с позиции offset с str до length символов.

Вы сравниваете до 2 символов с позиции 1 в main_str ("abcde"), то есть "bc", с "bcg". Но только до 2 символа.

См. Также о параметре length:

Длина сравнения. Значение по умолчанию является наибольшим из длины str по сравнению с длиной main_str за вычетом offset.

Я согласен, что это может быть неправильно понято, но сравниваются только от до length символов.

2 голосов
/ 18 апреля 2011

Из документации эта функция "сравнивает main_str с позиции offset с str до length символов."

Итак, 2 символа из "abcde ", начиная с позиции 1, будет" bc ".И первые два символа "bcg" - это "bc" - следовательно, возвращается 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...