/
Программирование
/
Курс PHP
/

Комбинирование операций и функций

PHP: Комбинирование операций и функций

Логические операции являются выражениями, поэтому их можно комбинировать с другими выражениями. Например, мы хотим проверить четность числа, то есть его кратность двум. В программировании для этого проверяют остаток от деления на два. Если остаток равен 0, число четное. Если остаток не равен 0, число нечетное.

even-or-odd

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

Делим конфеты поровну между людьми:

  • 7 конфет, 2 человека: 2 x 3 + остаток 1 (7 не кратно 2)
  • 21 конфету, 3 человека: 3 x 7 + остаток 0 (21 кратно 3)
  • 19 конфет, 5 человек: 5 x 3 + остаток 4 (19 не кратно 5)

Оператор % вычисляет остаток от деления:

  • 7 % 21
  • 21 % 30
  • 19 % 54

Скомбинируем в одном выражении логический оператор «проверка равенства» === и арифметический оператор % и напишем функцию проверки четности:

<?php

function isEven(int $number): bool
{
    return $number % 2 === 0;
}

var_dump(isEven(10)); // => bool(true)
var_dump(isEven(3));  // => bool(false)

Приоритет арифметических операций выше логических. Значит, сначала вычисляется арифметическое выражение $number % 2, а затем результат сравнивается с нулем и возвращается результат проверки равенства.

Теперь напишем функцию, которая принимает строку и проверяет, начинается ли эта строка с латинской буквы a.

Алгоритм:

  1. Получим и запишем в переменную первый символ из строки-аргумента
  2. Сравним, равен ли символ латинской букве a
  3. Вернем результат
<?php

function isFirstLetterAnA(string $text): bool
{
    $firstLetter = $text[0];
    return $firstLetter === 'a';
}

var_dump(isFirstLetterAnA('orange')); // => bool(false)
var_dump(isFirstLetterAnA('apple'));  // => bool(true)

Чтобы было понятно, что тут происходит, попробуйте проговорить происходящее аналогично тому, как мы расшифровывали процесс в примере с isEven().

Теперь вы знаете, что операции сравнения применяются в программировании наравне с арифметическими. Но помните, что равенство обозначается ===. Так вы не спутаете эту операцию с присваиванием значения переменной.

Задание

Реализуйте функцию isInternationalPhone(), которая проверяет формат указанного телефона. Если телефон начинается с +, значит это международный формат.

<?php

isInternationalPhone('89602223423'); // false
isInternationalPhone('+79602223423'); // true

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются