"Strict types" mode only checks types at specific points in the code; it does not track everything that happens to the variable.
Specifically, it checks:
the parameters given to the function, if type hints are included in the signature; here you are giving two ints to a function expecting two ints, so there is no error
the return value of the function, if a return type hint is included in the signature; here you have no type hint, but if you had a hint of : int, there would still be no error, because the result of $a + $b + $c is indeed an int.
Here are some examples that do give errors:
declare(strict_types=1);
$a = '1';
$b = '2';
function FunctionName(int $a, int $b)
{
return $a + $b;
}
echo FunctionName($a, $b);