Please consider these:
<?php
declare(strict_types=1);
use BcMath\Number;
class Test
{
/**
* @param Number[] $numbers
*/
public function testNumber(array $numbers): Number
{
$total = array_reduce(
$numbers,
static fn (Number $total, Number $number): Number => $total + $number,
new Number('0.00')
);
return $total;
}
/**
* @param int[] $numbers
*/
public function testInt(array $numbers): int
{
$total = array_reduce(
$numbers,
static fn (int $total, int $number): int => $total + $number,
0
);
return $total;
}
}
In both cases $total ends up being (local variable) $total