Условные операторы в PHP: руководство для начинающих

Здравствуйте, будущие маги PHP! Сегодня мы отправляемся в увлекательное путешествие в мир условных операторов в PHP. Не волнуйтесь, если вы еще ни разу не писали строку кода - я буду вашим доброжелательным проводником, и мы шаг за шагом изучим эту тему. Так что возьмите свою виртуальную палочку (клавиатуру), и начнем!

PHP - Conditional Operators

Что такое условные операторы?

Прежде чем мы погрузимся в код, давайте поймем, что такое условные операторы. Представьте, что вы учитель (как я!), который решает, давать ли вашим ученикам экспресс-тест. Вы можете подумать: "Если сегодня понедельник, я会给 тест. В противном случае у нас будет обычный урок." Этот процесс принятия решений exactly то, что условные операторы помогают нам сделать в программировании!

Условные операторы позволяют нашему коду принимать решения на основе определенных условий. Они как "если-то-иначе" в мире программирования.

Типы условных операторов в PHP

PHP предоставляет нам несколько условных операторов. Давайте посмотрим на них в удобной таблице:

Оператор Название Пример
?: Троеточие $result = (condition) ? value_if_true : value_if_false;
?? Оператор коалиции нуля $result = $variable ?? 'default_value';
?:: Короткое троеточие (Elvis) $result = $variable ?: 'default_value';

Теперь давайте рассмотрим каждый из этих операторов более подробно с интересными примерами!

Оператор троеточие: ?:

Синтаксис

$result = (condition) ? value_if_true : value_if_false;

Пример

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

$score = 75;
$message = ($score >= 50) ? "You passed!" : "Try again!";
echo $message;

В этом примере, если счет 50 или выше, сообщение будет "You passed!". В противном случае оно будет "Try again!". Поскольку наш счет 75, вывод будет "You passed!".

Давайте разберем это:

  1. Мы устанавливаем $score в 75.
  2. Условие ($score >= 50) истинно.
  3. Поскольку оно истинно, значение после ? присваивается $message.
  4. Наконец, мы выводим сообщение.

Другой пример

Давайте сделаем это немного сложнее:

$age = 20;
$canVote = ($age >= 18) ? "Yes, you can vote!" : "Sorry, you're too young to vote.";
echo $canVote;

Здесь мы проверяем, достаточно ликому-то лет для голосования. Вывод будет "Yes, you can vote!" потому что 20 больше или равно 18.

Оператор коалиции нуля: ??

Синтаксис

$result = $variable ?? 'default_value';

Пример

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

$nickname = null;
$fullName = "John Doe";
$displayName = $nickname ?? $fullName;
echo "Welcome, $displayName!";

В этом случае, поскольку $nickname равен null, вывод будет "Welcome, John Doe!".

Оператор коалиции нуля проверяет, является ли первое значение null. Если оно не null, используется это значение. Если оно null, используется второе значение.

Другой пример

Давайте представим, что мы получаем ввод пользователя для любимого цвета:

$favoriteColor = $_GET['color'] ?? 'blue';
echo "Your favorite color is $favoriteColor.";

Если пользователь не указал цвет в URL (например, ?color=red), будет использоваться значение по умолчанию 'blue'.

Оператор короткое троеточие (Elvis): ?:

Синтаксис

$result = $variable ?: 'default_value';

Пример

Оператор короткое троеточие является упрощенной версией оператора коалиции нуля. Он проверяет, является ли первое значение истиным (не null, не false, не пустая строка и т.д.).

$username = "";
$defaultUsername = "Guest";
$displayUsername = $username ?: $defaultUsername;
echo "Hello, $displayUsername!";

В этом случае, поскольку $username является пустой строкой (что считается ложно), вывод будет "Hello, Guest!".

Другой пример

Давайте используем его для простого приветствия:

$name = "Alice";
$greeting = $name ?: "there";
echo "Hello, $greeting!";

Это выведет "Hello, Alice!" потому что $name не пуст. Если бы $name был пустым, он сказал бы "Hello, there!".

Использование всего вместе

Теперь, когда мы узнали о этих операторах, давайте используем их в более сложном примере:

$user = [
'name' => 'Alice',
'age' => 25,
'premium_member' => true
];

$greeting = $user['name'] ?: 'valued customer';
$canAccessPremiumContent = ($user['age'] >= 18 && $user['premium_member']) ? 'Yes' : 'No';
$specialOffer = $user['premium_member'] ?? false;

echo "Hello, $greeting!\n";
echo "Can access premium content? $canAccessPremiumContent\n";
echo $specialOffer ? "Check out our special offer!" : "Upgrade to premium for special offers!";

Этот скрипт:

  1. Использует короткое троеточие для установки приветствия (Alice или 'valued customer').
  2. Использует оператор троеточие для определения, может ли пользователь получить доступ к премиум контенту.
  3. Использует оператор коалиции нуля для проверки, является ли пользователь премиум пользователем.
  4. Выводит разные сообщения в зависимости от этих условий.

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир условных операторов PHP. Эти мощные инструменты позволяют вашему коду принимать решения, как вы делаете это в реальной жизни. Помните, что практика делает мастера, так что не бойтесь экспериментировать с этими операторами в своих проектах.

Продолжая свое путешествие в PHP, вы найдете无数 способов использования этих операторов для того, чтобы сделать ваш код более эффективным иExpressive. Удачи в программировании, и пусть ваши условные операторы всегда будут истинными, когда вы этого хотите!

Credits: Image by storyset