PHP 7 - Deklaracje typów skalarnych

W PHP 7 została wprowadzona nowa funkcja, deklaracje typów skalarnych. Deklaracja typu skalarnego ma dwie opcje -

  • coercive - koercja jest trybem domyślnym i nie trzeba jej określać.

  • strict - tryb ścisły musi wyraźnie wskazywać.

Następujące typy parametrów funkcji można wymusić za pomocą powyższych trybów -

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

Przykład - tryb przymusu

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

Tworzy następujące dane wyjściowe przeglądarki -

9

Przykład - tryb ścisły

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

Tworzy następujące dane wyjściowe przeglądarki -

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