TOC

This article has been localized into Russian by the community.

Основы PHP:

Условный оператор if

Один из наиболее важных операторов в любом языке программирования - это if. Возможность задавать условные конструкции в коде - это фундаментальный принцип программирования. Если вы уже изучали другие языки программирования, скорее всего, вы без проблем сможете использовать if в PHP - он выглядит в целом так же, как и в любом другом языке. Если нет, вот несколько базовых примеров.

<?php
$number = 42;
if($number == 42)
    echo "The number is 42!";
?>

Это очень просто. Мы объявили переменную с именем number и присвоили ей значение 42. В следующей строке мы используем оператор if чтобы проверить, равно ли число тому, которое мы ожидаем. Следующая строка кода выполнится только, если условие будет равно true (истина), т.е. если оно выполнится. Если вы поменяете значение в первой строке на что-нибудь другое, вы увидите, что строка с echo не выполнится.

Как вы можете видеть, здесь используется двойное равно - почему так? В PHP, как и во многих других языках программирования, одно равно - это оператор присваивания. Он используется, чтобы записать значение, например, в переменную. А два равно - это оператор сравнения, т.е. он используется для сравнения двух значений. Так что, в нашем случае, мы используем двойное равно, чтобы сравнить значения переменной $number и число 42. Если бы мы использовали одно равно, то число 42 просто записалось бы в переменную $number, и никакого сравнения не было бы.

Фактически, PHP делает еще один шаг вперед и вводит тройное равно. Разница в том, что если использовать двойное равно, то PHP проверит только, равны ли значения. Если использовать тройное, PHP проверит и значение, и тип, и только если они оба совпадают, результат будет true. Вот пример, который покажет вам разницу:

<?php
$number = 42;
if($number === "42")
    echo "The number is 42!";
?>

Здесь мы сравнили ту же переменную со строкой, содержащей "42", вместо числа 42. Но теперь мы используем тройное равно, типы больше не совпадают, т.к. одно из значений - это целое число, а другое - строка текста. Думаю, сейчас это немного сложно, но попытайтесь пока просто запомнить это - в начале вам в основном потребуется только двойное равно.

Ветка else

Если один путь недостаточно хорош, почему бы не попробовать другой? Ветка else - это лучший друг оператора if, и она является альтернативной, когда условие нарушается. В коде это выглядит как-то так:

<?php
$animal = "Cat";
if($animal == "Dog")
    echo "It's a dog!";
else
    echo "I'm sure it's some sort of animal, but not a dog!"
?>

В случае, когда условие if не равно true, выполняется ветка else (если она есть). Как вы видели в первом примере, ветку else можно пропустить, когда она не нужна. В этом случае, мы ищем вполне конкретное животное, собаку, и выводим сообщение в зависимости от того, нашли мы ее или нет. Попробуйте заменить значение переменной $animal с "Cat" на "Dog", чтобы увидеть разницу.

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

<?php
$animal = "Cat";
if($animal == "Dog")
    echo "It's a dog!";
else
{
    echo "I'm sure it's some sort of animal, but not a dog!";
    echo "This line is still a part of the else statement.";
}
?>

Другие операторы

В предыдущих примерах мы использовали только оператор равенства для сравнения значений. Между тем, существует много других операторов. Любой из них можно использовать вместо равенства, например:

<?php
$number = 42;

if($number != 30)
    echo "Hello World!";
?>

!= значит "не равно", противоположность == (равно)

if($number > 30)

Значение $number больше 30?

if($number < 30)

Значение $number меньше 30?

if($number >= 30)

Значение $number больше или равно 30?

if($number <= 30)

Значение $number меньше или равно 30?

Перейдите к следующему параграфу, чтобы узнать больше об if.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!