---

name: Сигнатура функции
theory: |

  Функция `pow()`, возводящая число в какую-нибудь степень, принимает два параметра: **какое число возводить** и **в какую степень возводить**. Если вызывать `pow()` без параметров, то PHP выдаст следующее: `PHP Warning:  pow() expects exactly 2 parameters, 0 given in php shell code on line 1`. Интерпретатор сообщает, что функция ожидает 2 параметра, а вы вызвали её без параметров.

  Тот, кто создавал функцию `pow()`, сделал её функцией с двумя обязательными параметрами, поэтому её невозможно вызвать с другим количеством параметров.

  Более того, параметрами `pow()` могут быть только числа. Попытка передать в неё, например, строку приведет к следующей ошибке: `PHP Warning:  A non-numeric value encountered in php shell code on line 1`. Результат вызова этой функции — тоже всегда число.

  Другая функция может иметь иное число параметров и другие типы параметров. Например, может существовать функция, которая принимает три параметра: число, строку и ещё одно число.

  Откуда мы знаем, сколько каких параметров нужно функции `pow` и какого типа будет «возврат»? Мы заглянули в **сигнатуру** этой функции. Сигнатура определяет входные параметры и их типы, а также выходной параметр и его тип. Про функцию `pow` можно почитать в [официальной документации PHP](https://php.net/manual/ru/function.pow.php). В разделе «описание» там есть такой текст:

  ```
  pow ( number $base , number $exp ) : number

  Возвращает base, возведенное в степень exp.
  ```

  Это сигнатура функции и короткое пояснение на русском языке.

  Информация расшифровывается так:
  - функция называется `pow`
  - функция принимает два параметра: число (base) и число (exp)
  - функция возвращает число (number)
  - функция возвращает base, возведенное в степень exp

  Параметры можно передавать только в той последовательности, в которой они определены в сигнатуре.

  Любая функция возвращает всегда только одно значение. Это ограничение существует на уровне языка и не может быть нарушено.

instructions: |

  Теперь ваша очередь посмотреть на сигнатуру функции в документации и разобраться, как её использовать. Можете читать документацию на русском языке, но программист обязан уметь читать документацию на английском. Используйте словари или переводчики при необходимости. Лучше сразу привыкать и подтягивать навыки чтения на английском, иначе будут сложности в будущем.

  В PHP есть функция `ucfirst()`. Изучите её сигнатуру на странице [https://php.net/manual/ru/function.ucfirst.php](https://php.net/manual/ru/function.ucfirst.php).

  Напишите программу, которая использует функцию `ucfirst()` с переменной `$text` и выводит результат на экран. Значение переменной `$text` уже определено.

tips: []

definitions:
  - name: Сигнатура функции
    description: формальное описание типов аргументов и типа возвращаемого значения функции.
