(PHP 7)
Existem três cenários em que um TypeError pode ser lançado. O primeiro é quando o tipo do argumento passado a uma função não combina com o tipo do parâmetro declarado. O segundo é quando o valor retornado de uma função não combina com o tipo de retorno declarado. O terceiro é quando um número de argumentos inválidos são passados a uma função built-in do PHP (somente no modo restrito).