---

name: Вызов функции — выражение
theory: |

  В программировании, выражение – нечто возвращающее результат, который можно использовать. Мы уже знаем достаточно много о выражениях и о принципах их построения. Математические операции (сложение, вычитание), строковые операции (конкатенация) – все это выражения:

  ```php
  <?php

  1 + 5 * 3
  'He' . 'Let'
  // Переменные могут быть частью выражения
  $rate * 5
  ```

  Особенность выражений в том, что они возвращают результат, который можно, например, присвоить переменной или вывести на экран. Например:

  ```php
  <?php

  // Тут выражение это 1 + 5
  $sum = 1 + 5;
  print_r(1 + 5);
  ```

  Но не все в программировании является выражением. Определение переменной это инструкция, она не может быть частью выражения. То есть такой код выдаст ошибку:

  ```php
  <?php

  // Бесмысленный код, который не сработает
  10 + $sum = 1 + 5;
  ```

  Почему об этом важно знать? Как вы увидите дальше, выражения можно комбинировать получая все более сложное поведение в самых неожиданных местах и самым неожиданным образом. Вы будете лучше понимать как можно соединять части кода, чтобы получить нужный результат.

  Поговорим о функциях. Вызов функции это выражение или нет? Мы знаем что функции возвращают результат, то есть да, они выражения. Из этого автоматически следует много интересного. Например мы можем использовать вызов функции прямо в математических операциях. Вот как можно получить индекс последнего символа в слове:

  ```php
  <?php

  $name = 'php';
  // Индексы начинаются с нуля
  // Вызов метода и вычитание вместе!
  $last_index = strlen($name) - 1;
  print_r($last_index); // 2
  ```

  В этом коде нет нового синтаксиса. Мы всего лишь соединили уже известные части опираясь на их природу. Можно пойти еще дальше:

  ```php
  <?php

  $name = 'php';
  print_r(strlen($name) - 1); // => 2
  ```

  Все это справедливо для любых функций, например строковых:

  ```php
  <?php

  $name = 'php';
  // Используется интерполяция
  print_r("Последний символ: {$name[strlen($name) - 1]}");
  // => 'Последний символ: p'
  ```

instructions: |

  Выведите на экран первую и последнюю буквы предложения, записанного в переменную `text`, в следующем формате:

  <pre class='hexlet-basics-output'>
  First: N
  Last: t
  </pre>

  Постарайтесь создать только одну переменную, в которую сразу запишется нужный текст перед печатью на экран. В этом уроке мы отрабатываем умение собирать составное выражение.

# tips: []
