Вопрос пользователя Константин Кулишов в испытании «Сравнение версий»

Константин Кулишов

Добрый день!

Пытался решить данную задачу через функцию compareVersion (думал пойти самым простым путем), реализовал так:

function compareVersion ($version1, $version2)
{
    if (version_compare($version1, $version2, '>')) {
        return 1;
   } elseif ('<') {
        return -1;
        } 
    elseif ('==') { return 0; }
    else { return 0; }
}

Все это тестил через https://repl.it/languages/php , с помощью var_dump . Вообщем все хорошо сравнивает, НО при сравнении индентичной версии 1.1 , 1,1 выдает мне -1 , может кто нибудь подскажет в чем проблема?

3 0

Роман Лахтадыр

elseif ('<') {
   return -1;
}

вы передаете строку в условие вместо выражения, поэтому там всегда true;

у вас первое условие указано верно, а следующие - нет.

0

Константин Кулишов

Спасибо!Действительно при таких условиях отрабатывает верно:

function compareVersion ($version1, $version2)
{
    if (version_compare($version1, $version2, '>')) {
        return 1;
   } elseif (version_compare($version1, $version2, '<')) {
        return -1;
        } 
    elseif (version_compare($version1, $version2, '=')) { return 0; }
    else { return 0; }
}
0

Станислав Виноградов

Константин Кулишов,

Какое-то странное решение, еще и отмечено как решение. Что мешает вот так написать-то?

function compareVersion(string $version1, string $version2): bool
{
    return version_compare($version1, $version2);
}
0

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг».

Похожие вопросы

Ilia D 13 октября 2020 →

Добрый день! подскажите - где почитать про решение?! прошелся по урокам ранее - не смог найти. спасибо $1 ...

Илья Идущий 11 мая 2020 →

Невнимательно прочитал задание, и не прошел валидацию со значениями '0.2' и '0.12'. Потом никак не мог поня...

Александр Михайлов 10 марта 2020 →

https://ru.hexlet.io/code_reviews/228615 Мне интересно насколько мое решение костыльное? есть ли что то кон...

Валентин Иванов 21 января 2019 →

Подскажите, где можно почитать как работает сравнение массивов (как в решении Учителя)? С ходу не получилос...

Luba Parfilova 17 июля 2018 →

Как же работает оператор сравнения > с массивами? http://php.net/manual/ru/language.operators.array.php