---

name: Условная конструкция (if)
theory: |

  Задача предиката — получить ответ на вопрос, но обычно этого недостаточно и нужно выполнить определенное действие в зависимости от ответа.

  Напишем функцию, которая определяет тип переданного предложения. Для начала она будет отличать обычные предложения от вопросительных.

  ```php
  <?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
  <?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
  ```

  Советуем не делать так и **всегда писать фигурные скобки**. В таком случае явно видно, где начинается и заканчивается тело условия. Код становится более чётким и понятным.

instructions: |

  Реализуйте функцию `guessNumber()`, которая принимает число и проверяет, равно ли число заданному (пусть это будет 42). Если равно, то функция должна вернуть строку `'You win!'`, в противном случае нужно вернуть строку `'Try again!'`.

  ```php
  <?php

  guessNumber(42) // 'You win!'
  guessNumber(61) // 'Try again!'
  ```

tips: []

definitions:
  - name: "Условная конструкция"
    description: "способ задать условие для выполнения кода. Например, `if ($x > 10) { ... }`"
