Изменения в новых версиях / PHP 7.0

// *** before: ***
function sum($a, $b) {
    // no type checking: a string or an array would pass silently
    return $a + $b;
}

var_dump(sum(23));      // 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(23));      // int(5)
var_dump(sumTyped("2""3"));  // TypeError: must be of type int, string given