Время чтения ~ 40 сек. / 42 просмотра / 0 комментариев / Январь 12, 2024, 16:56

В этом уроке вы узнаете о конструкции if в PHP и о том, как использовать её для выполнения блока кода при условии.

Введение

Конструкция if позволяет выполнить инструкцию, если выражение оценивается как true. Ниже представлен синтаксис конструкции if:

<?php

if ( условие ) 
    инструкция;

В данном синтаксисе PHP сначала вычисляет выражение. Если выражение оценивается как true, PHP выполняет инструкцию. В случае, если выражение оценивается как false, PHP игнорирует инструкцию.

Следующая блок-схема иллюстрирует, как работает оператор if:

Конструкция if

В следующем примере конструкция if используется для отображения сообщения, если переменная $is_admin имеет значение true:

<?php

$is_admin = true;
if ($is_admin)
    echo 'Добро пожаловать, admin!';

Поскольку $is_admin имеет значение true, скрипт выводит следующее сообщение:

Добро пожаловать, admin!

Фигурные скобки

Если вы хотите выполнить несколько инструкций в блоке if, вы можете использовать фигурные скобки для группировки нескольких инструкций следующим образом:

<?php

if ( условие ) {
   инструкция1;
   инструкция2;
   // еще инструкции
}

В следующем примере используется конструкция if, которая выполняет несколько инструкций:

<?php

$can_edit = false;
$is_admin = true;

if ( $is_admin ) {
   echo 'Добро пожаловать, admin!';
   $can_edit = true;
}

В данном примере конструкция if выводит сообщение и устанавливает переменную $can_edit в true, если переменная $is_admin равна true.

Хорошей практикой является всегда использовать фигурные скобки с оператором if, даже если у него только одна инструкция для выполнения, как в данном случае:

<?php

if ( условие ) {
   инструкция;
}

Кроме того, вы можете использовать пробелы между выражением и фигурными скобками, чтобы сделать код более читабельным.

Вложенность конструкций if

Конструкцию if можно вложить в другую конструкцию if следующим образом:

<?php

if ( условие1 ) {
    // сделать что-то
    if( условие2 ) {
        // сделать что-то другое
    }
}

В следующем примере показано, как вложить конструкцию if в другую конструкцию if:

<?php

$is_admin = true;
$can_approve = true;

if ($is_admin) {
    echo 'Добро пожаловать, admin!';
    if ($can_approve) {
        echo 'Пожалуйста, одобрите ожидающие статьи';
    }
}

Встраивание конструкции if в HTML

Для вставки конструкции if в HTML документ вы можете использовать вышеуказанный синтаксис. Однако PHP предоставляет более удобный синтаксис, который хорошо позволяет смешивать конструкцию if с HTML:

<?php if ( условие ) : ?>
<!-- HTML код здесь -->
<?php endif; ?>

В следующем примере используется конструкция if, которая показывает ссылку редактирования, если $is_admin имеет значение true:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Демонстрация конструкции if в PHP</title>
</head>
<body>
  <?php $is_admin = true; ?>
  <?php if ( $is_admin ) : ?>
  <a href="#">Редактировать</a>
  <?php endif; ?>
  <a href="#">Посмотреть</a> 
</body>
</html>

Поскольку $is_admin равно true, скрипт отображает ссылку "Редактировать". Если вы измените значение $is_admin на false, вы не увидите Редактировать"Edit" в выводе.

Распространенная ошибка с конструкцией if в PHP

Распространенной ошибкой является использование неправильного оператора в конструкции if. Например:

<?php

$checked = 'on';
if( $checked = 'off' ) {
   echo 'Флажок не установлен';
}

Этот скрипт показывает сообщение, если $checked отключен. Однако выражение в конструкции if является присваиванием, а не сравнением:

$checked = 'off'

Это выражение присваивает литеральную строку 'off' переменной $checked и возвращает эту переменную. Оно не сравнивает значение переменной $checked с 'off'. Таким образом, выражение всегда оценивается как true, что является некорректным.

Чтобы избежать этой ошибки, вы можете поместить значение сначала, перед оператором сравнения, а затем переменную после оператора сравнения, например:

<?php

$checked = 'on';
if( 'off' == $checked ) {
   echo 'Флажок не установлен';
}

Если вы случайно используете оператор присваивания (=), вместо этого PHP выдаст синтаксическую ошибку:

<?php

$checked = 'on';
if ('off' = $checked) {
    echo 'Флажок не установлен';
}
Parse error: syntax error, unexpected '=' ...

Подытожим

  • Конструкция if выполняет инструкцию, если условие оценивается как true.
  • Всегда используйте фигурные скобки, даже если у вас есть только одна инструкция для выполнения в операторе if. Это делает код более наглядным.
  • Используйте шаблон if (value == $variable_name) {} для предотвращения возможных ошибок.
Теги:
php
Арифметические операторы - PHP
Конструкция if else - PHP
Число с плавающей точкой (Float) - PHP
Январь 06, 2024, 17:24
В этом уроке вы узнаете о числах с плавающей точкой или числах с плавающей запятой в PHP.
Типы данных - PHP
Январь 04, 2024, 15:06
В этом руководстве вы узнаете о типах данных PHP, такие как скалярные, составные и специальные типы.
Комментарии в PHP
Декабрь 30, 2023, 23:53
В этом уроке вы узнаете, как использовать комментарии в PHP для документирования вашего кода.
Null - PHP
Январь 07, 2024, 12:42
В этом уроке вы узнаете о типе PHP NULL и о том, как проверить, имеет ли переменная значение null или нет.
Что такое PHP
Декабрь 26, 2023, 14:22
В этом уроке вы узнаете о PHP, о том, как он работает, на что он способен, и о его преимуществах.