За последние 24 часа нас посетили 70366 программистов и 5688 роботов. Сейчас ищут 1226 программистов ...

Почему ($ages >= 21 && $ages < 70) ≠ ($ages >= 21 && 70 > $ages)?

Тема в разделе "PHP для новичков", создана пользователем Simon01, 6 апр 2023.

Метки:
  1. Simon01

    Simon01 Новичок

    С нами с:
    6 апр 2023
    Сообщения:
    1
    Симпатии:
    0
    Если я напишу ($ages >= 21 && $ages < 70), это будет - true, если я напишу ($ages >= 21 && 70 > $ages), это будет - false. С точки зрения математики, $ages < 70 - это то же самое, что 70 > $ages. Однако “&&” думает по-другому.

    PHP:
    1. <?php
    2. $ages = 22;
    3.  
    4. if ($ages >= 70) {
    5.     echo "You're old";
    6. }
    7. elseif ($ages >= 21 && $ages < 70) { //пропустит если будет ($ages >= 21 && 70 < $ages)
    8.     echo "You're adult! <br>";
    9. }
    10. elseif ($ages < 21 && $ages >= 3) {
    11.     echo "You're young <br>";
    12. }
    13. else {
    14.     echo "You're kid <br>";
    15. }
    16. ?>
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Это ты что-то не то пишешь. Операции сравнения в пыхе работают нормально https://ideone.com/3o33Xy
    && - логическая операция, ей вообще пофиг, каким образом получены операнды.
    --- Добавлено ---
    Хотя, если первое условие не сработало, ещё раз сравнивать с 70 смысла не имеет.
     
    Simon01 нравится это.
  3. Aleksandr.B

    Aleksandr.B Активный пользователь

    С нами с:
    2 фев 2023
    Сообщения:
    159
    Симпатии:
    41
    Адрес:
    Барнаул
    Код (Text):
    1. ($ages >= 21 && $ages < 70) == ($ages >= 21 && 70 > $ages)
    Комментарии в коде
    Код (Text):
    1. ($ages >= 21 && $ages < 70) != ($ages >= 21 && 70 < $ages)
     
    Simon01 и artoodetoo нравится это.
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    @Simon01 ты где-то косячишь. результат не меняется. эти выражения равны.
    --- Добавлено ---
    ну видимо так и косячит, как в коментарии
     
    Simon01 нравится это.