---
name: else
theory: |

  Попробуем изменить функцию из предыдущего примера так, чтобы она возвращала не просто тип предложения, а целую строку *Sentence is normal* или *Sentence is question*.

  ```php
  <?php

  function getTypeOfSentence($sentence)
  {
      $lastChar = $sentence[-1];

      if ($lastChar === '?') {
          $sentenceType = 'question';
      } else {
          $sentenceType = 'normal';
      }

      return "Sentence is {$sentenceType}";
  }

  getTypeOfSentence('Hodor');  // Sentence is normal
  getTypeOfSentence('Hodor?'); // Sentence is question
  ```

  Мы добавили `else` и новый блок с фигурными скобками. Этот блок выполнится, только если условие в `if` — ложь.

  Существует два способа оформления конструкции *if-else*. С помощью отрицания можно изменить порядок блоков:

  ```php
  <?php

  function getTypeOfSentence($sentence)
  {
      $lastChar = $sentence[-1];

      if ($lastChar !== '?') {
          $sentenceType = 'normal';
      } else {
          $sentenceType = 'question';
      }

      return "Sentence is {$sentenceType}";
  }
  ```

  Какой способ предпочтительнее? Человеческому мозгу проще мыслить прямолинейно, а не через отрицание. Старайтесь выбирать проверку, которая не содержит отрицаний, и подстраивайте содержимое блоков под неё.

instructions: |

  Реализуйте функцию `normalizeUrl()`, которая выполняет так называемую нормализацию данных. Она принимает адрес сайта и возвращает его с `https://` в начале.

  Функция принимает адреса в виде `АДРЕС` или `http://АДРЕС`, но всегда возвращает адрес в виде `https://АДРЕС`

  Есть два пути решения:

  1. Можно сравнить первые 7 символов строки-аргумента со строкой `http://`.
  2. Можно использовать функцию [strpos](https://php.net/manual/ru/function.strpos.php), чтобы проверить, содержится ли в строке-аргументе подстрока `http://`.

  А потом на основе этого добавлять или не добавлять `https://`.

  Примеры вызова:

  ```php
  <?php

  normalizeUrl('google.com');   // 'https://google.com'
  normalizeUrl('http://ai.fi'); // 'https://ai.fi'
  ```

tips: []

definitions:
  - name: "else"
    description: "способ задать блок кода, который будет выполнен, если условие с `if` не удовлетворено"
