Dichiarazioni di tipo ritornato da una funzione
Dal PHP7 è possibile specificare il tipo di ritorno di una funzione, cioè qual è il tipo della variabile ritornata da una funzione. I tipi disponibili sono i quattro riportati nell’articolo precedente (int, string, float, bool).
// 6.php
function sum(array $array): int {
return array_sum($array);
}
$s = sum([1,2,3]);
echo gettype($s) .": ".$s . "\n";
Output:
$ php 6.php integer: 6
A cosa ci serve dichiarare il tipo di ritorno? Per tutti i linguaggi è normale farlo e il compilatore stesso può dare indicazioni se c’è qualche incoerenza di tipo. PHP consente di farlo e il funzionamento può essere utilizzato per imporre un uso di tipi più controllato di quanto un programmatore PHP sia abituato a fare. Ad esempio possiamo definire la funzione div():
// 6.1.php
function div(int $a, $b): int {
return $a / $b;
}
$s = div(1,2);
echo gettype($s) .": ".$s . "\n";
Output:
$ php 6.1.php integer: 0
Ma possiamo anche definire diversamente il tipo di ritorno:
// 6.2.php
function div(int $a, $b): float {
return $a / $b;
}
$s = div(1,2);
echo gettype($s) .": ".$s . "\n";
nel qual caso ho un diverso comportamento
$ php 6.2.php double: 0.5
Commenti recenti