---

name: Предикаты
theory: |

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

  ```php
  <?php

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

  var_dump(isInfant(3));
  ```

  <pre class='hexlet-basics-output'>bool(false)</pre>

  Подобные функции называют предикатами. Функции-предикаты (или функции-вопросы) отвечают на какой-то вопрос и всегда (без исключений!) возвращают либо `true`, либо `false`.

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

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

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

  ---

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

  ```php
  <?php

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

  var_dump(isCastle('Sea'));
  ```

  <pre class='hexlet-basics-output'>bool(false)</pre>


instructions: |

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

  ```php
  <?php

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

tips:
  - |
    [Именование в программировании](https://ru.hexlet.io/blog/posts/naming-in-programming)

definitions:
  - name: Предикат
    description: выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.
