// *** before: ***
function sum($a, $b) {
// no type checking: a string or an array would pass silently
return $a + $b;
}
var_dump(sum(2, 3)); // int(5)
var_dump(sum("2", "3")); // int(5), silently converted
// *** in version 7.0: ***
declare(strict_types=1);
function sumTyped(int $a, int $b): int {
return $a + $b;
}
var_dump(sumTyped(2, 3)); // int(5)
var_dump(sumTyped("2", "3")); // TypeError: must be of type int, string given