Время чтения ~ 40 сек. / 35 просмотров / 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
Переменные в PHP
Декабрь 30, 2023, 22:12
В этом уроке вы узнаете, как использовать переменные PHP для хранения данных в программах.
Тернарный оператор - PHP
Январь 14, 2024, 17:39
В этом уроке вы узнаете, как использовать тернарный оператор в PHP для сокращения кода и улучшения его читаемости.
Конструкция if else - PHP
Январь 13, 2024, 16:37
В этом уроке вы узнаете о конструкции if...else в PHP, которая выполняет блок кода, когда условие истинно, и другой блок кода, когда условие ложно.
var_dump - PHP
Январь 03, 2024, 21:21
В этом уроке вы узнаете, как использовать функцию PHP var_dump() для вывода информации о переменной.
Язык разметки Markdown с примерами
Декабрь 18, 2023, 20:55
Примеры использования языка разметки Markdown.