📚
#21 18.09.2025 PHP Basics

Расскажите всё, что знаете об использовании в коде символа ! (восклицательный знак).

Восклицательный знак ! в PHP — это оператор логического отрицания. Его ключевые роли:

  1. Инверсия логического значения: !true => false.
  2. Часть операторов сравнения “не равно”: != (нестрогое) и !== (строгое). Всегда предпочтительнее использовать !==.
Подробнее
⚠️
Внимание! Этот текст был сгенерирован AI-ассистентом. Информация может содержать неточности и требует проверки.

Полный ответ:

1. Логическое НЕ (Logical NOT)

Это основное и самое частое использование символа !.

  • Назначение: Оператор логического отрицания. Он инвертирует булево значение выражения, превращая true в false, а false в true.
  • Синтаксис: Ставится непосредственно перед выражением.
  • Примеры:
    $isActive = true;
    var_dump(!$isActive); // bool(false)
    
    $hasPermission = false;
    var_dump(!$hasPermission); // bool(true)
    
    // Использование в условиях
    if (!isset($username)) {
        echo 'Имя пользователя не задано!';
    }
    

2. Неравенство (!= и !==)

! является частью операторов сравнения “не равно”.

  • != (Не равно): Проверяет, что значения не равны друг другу после приведения типов.
    var_dump(5 != '5'); // false (потому что 5 равно '5' после приведения)
    var_dump(5 != 10);  // true
    
  • !== (Тождественно не равно): Проверяет, что значения не равны или их типы не совпадают. Это строгая проверка.
    var_dump(5 !== '5'); // true (потому что типы different: int vs string)
    var_dump(5 !== 5);   // false
    

    Важно: Всегда рекомендуется использовать строгое неравенство (!==), чтобы избежать неожиданного поведения из-за неявного приведения типов.

3. Другие контексты (менее распространенные)

  • В шаблонах (для читаемости): ! часто используется в условиях внутри шаблонов для удобочитаемости.
    <?php if (!$userIsLoggedIn): ?>
        <p>Пожалуйста, авторизуйтесь.</p>
    <?php endif; ?>
    
  • В регулярных выражениях: Является обычным символом и не имеет специального значения, если не находится внутри символьного класса [!].

Итог:

Восклицательный знак ! в PHP — это оператор логического отрицания. Его ключевые роли:

  1. Инверсия логического значения: !true => false.
  2. Часть операторов сравнения “не равно”: != (нестрогое) и !== (строгое). Всегда предпочтительнее использовать !==.

Понимание разницы между != и !== критически важно для написания корректных условий, так как оно напрямую связано с системой типов PHP.