PHP: Предикаты
Вспомним функцию isInfant()
из прошлого урока:
<?php
function isInfant($age)
{
return $age < 1;
}
var_dump(isInfant(3));
bool(false)
Подобные функции называют предикатами. Функции-предикаты (или функции-вопросы) отвечают на какой-то вопрос и всегда (без исключений!) возвращают либо true
, либо false
.
Предикаты во всех языках принято именовать особым образом для простоты анализа. В PHP предикаты, как правило, начинаются с префикса is
, has
или can
, но не ограничены этими словами. Примеры:
isInfant()
— «младенец ли?»hasChildren()
— «есть ли дети?»isEmpty()
— «пустой ли?»hasErrors()
— «есть ли ошибки?»
Функция может считаться предикатом, только если она возвращает bool.
Давайте напишем еще одну функцию-предикат. Она принимает строку и проверяет, является ли она словом 'Castle'
:
<?php
function isCastle($type)
{
return $type === 'Castle';
}
var_dump(isCastle('Sea'));
bool(false)
Задание
Напишите функцию isMister()
, которая принимает строку и проверяет, является ли она словом 'Mister'
.
<?php
isMister('Mister'); // true
isMister('Missis'); // false
Советы
Определения
Предикат - выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.