Предикаты

Вспомним функцию isInfant из прошлого урока:

<?php

function isInfant($age)
{
    return $age < 1;
}

var_dump(isInfant(3));
bool(false)

isInfant — это функция-предикат.

Предикат отвечает на утвердительный вопрос «да» или «нет», возвращая значение типа bool.

Предикаты во всех языках принято именовать особым образом для простоты анализа. В PHP предикаты как правило начинаются с префикса is или has:

  • isInfant — «младенец ли?»
  • hasChildren — «есть ли дети?»
  • isEmpty — «пустой ли?»
  • hasErrors — «есть ли ошибки?»

Функция может считаться предикатом, только если она возвращает bool.


Давайте напишем еще одну функцию-предикат. Она принимает строку и проверяет, является ли она словом 'Castle':

<?php

function isCastle($str)
{
    return $str === 'Castle';
}

var_dump(isCastle('Sea'));
bool(false)

Задание

Напишите функцию isMister, которая принимает строку и проверяет, является ли она словом 'Mister'.

<?php

isMister('Mister'); // true
isMister('Missis'); // false

Советы

Определения

  • Предикат — выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.