(PHP 7)
Есть три сценария, в которых будет выброшено исключение TypeError. Первый - тип аргумента, переданный функции, не соответствует типу, объявленному в функции для этого аргумента. Второй - тип возвращенного функцией значения не соответствует типу возврата, объявленному в функции. Третий - встроенной функции PHP было передано неверное количество аргументов (только для режима strict).