PHP: Условная конструкция (if)
Задача предиката — получить ответ на вопрос, но обычно этого не достаточно и нужно выполнить определенное действие в зависимости от ответа.
Напишем функцию, которая определяет тип переданного предложения. Для начала она будет отличать обычные предложения от вопросительных.
<?php
function getTypeOfSentence($sentence)
{
// простой способ извлечь последний символ
$lastChar = $sentence[-1];
if ($lastChar === '?') {
return 'question';
}
return 'normal';
}
getTypeOfSentence('Hodor'); // normal
getTypeOfSentence('Hodor?'); // question
if
— инструкция. В скобках ей передается выражение-предикат, а затем описывается блок кода в фигурных скобках. Этот блок кода будет выполнен, только если предикат — истина.
Если предикат — ложь, то блок кода в фигурных скобках пропускается, и функция продолжает свое выполнение дальше. В нашем случае следующая строчка кода — return 'normal';
— заставит функцию вернуть строку и завершиться.
Как видите, return
может находиться где угодно в функции. В том числе внутри блока кода с условием.
Если в фигурных скобках после if
содержится только одна строчка кода, то фигурные скобки можно не писать и сделать так:
<?php
function getTypeOfSentence($sentence)
{
$lastChar = $sentence[-1];
if ($lastChar === '?')
return 'question';
return 'normal';
}
print_r(getTypeOfSentence('Hodor')); // => normal
print_r("\n");
print_r(getTypeOfSentence('Hodor?')); // => question
Советуем не делать так и всегда писать фигурные скобки. В таком случае явно видно, где начинается и заканчивается тело условия. Код становится более чётким и понятным.
Задание
Реализуйте функцию getSentenceTone()
, которая принимает строку и определяет тон предложения. Если все символы в верхнем регистре, то это вопль — 'scream'
. В ином случае — нормальное предложение — 'general'
.
Примеры вызова:
<?php
getSentenceTone('Hello'); // general
getSentenceTone('WOW!'); // scream
Алгоритм:
- Сгенерируйте строку в верхнем регистре на основе строки-аргумента с помощью
strtoupper()
. - Сравните её с исходной строкой:
- Если строки равны, значит строка-аргумент в верхнем регистре.
- В ином случае строка-аргумент не в верхнем регистре.
Определения
Условная конструкция - способ задать условие для выполнения кода. Например,
if ($x > 10) { ... }