Время чтения ~ 40 сек. / 64 просмотра / 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
Привет Мир! или Hello World!
Декабрь 04, 2017, 15:07
По традиции при изучении нового языка программирования программисты пишут первую простую программу на этом языке, которая выводит на экран фразу "Hello World!" или "Привет Мир!". Следуя этой традиции в первой статье сайта будут показаны простые...
Константы в PHP
Декабрь 31, 2023, 12:52
В этом уроке вы узнаете о константах в PHP и о том, как использовать функцию define() и ключевое слово const для определения констант.
Операторы - PHP
Январь 09, 2024, 14:28
В этом уроке вы узнаете об операторах в PHP и о том, как эффективно использовать их в своих скриптах.
PHP Учебник
Декабрь 23, 2023, 16:37
Это руководство по PHP поможет вам научиться разрабатывать динамические веб-сайты и веб-приложения с использованием PHP с нуля.
Конструкция if elseif - PHP
Январь 13, 2024, 18:40
В этом уроке вы узнаете о конструкции if elseif в PHP, которая позволяет выполнять блоки кода в зависимости от нескольких логических выражений.