PHP 7 - Dichiarazioni di tipo scalare

In PHP 7 è stata introdotta una nuova funzionalità, le dichiarazioni di tipo scalare. La dichiarazione di tipo scalare ha due opzioni:

  • coercive - coercitivo è la modalità predefinita e non è necessario specificarlo.

  • strict - La modalità rigorosa deve essere esplicitamente suggerita.

I seguenti tipi di parametri di funzione possono essere applicati utilizzando le modalità precedenti:

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

Esempio: modalità coercitiva

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

Produce il seguente output del browser:

9

Esempio: modalità rigorosa

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

Produce il seguente output del browser:

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