PHP 7 - Declarações de tipo escalar

No PHP 7, um novo recurso, declarações de tipo escalar, foi introduzido. A declaração de tipo escalar tem duas opções -

  • coercive - coercivo é o modo padrão e não precisa ser especificado.

  • strict - o modo estrito deve ser sugerido explicitamente.

Os seguintes tipos de parâmetros de função podem ser aplicados usando os modos acima -

  • int
  • float
  • bool
  • string
  • interfaces
  • array
  • callable

Exemplo - Modo Coercitivo

<?php
   // Coercive mode
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>

Ele produz a seguinte saída do navegador -

9

Exemplo - Modo estrito

<?php
   // Strict mode
   declare(strict_types=1);
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>

Ele produz a seguinte saída do navegador -

Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...