PHP 7 - Declaraciones de tipo escalar

En PHP 7, se ha introducido una nueva característica, declaraciones de tipo escalar. La declaración de tipo escalar tiene dos opciones:

  • coercive - coercitivo es el modo predeterminado y no es necesario especificarlo.

  • strict - El modo estricto tiene que insinuarse explícitamente.

Los siguientes tipos de parámetros de función se pueden aplicar utilizando los modos anteriores:

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

Ejemplo: modo coercitivo

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

Produce la siguiente salida del navegador:

9

Ejemplo: modo estricto

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

Produce la siguiente salida del navegador:

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