3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface Summable { public function getNumericValue(): int; } class One implements Summable { public function getNumericValue(): int { return 1; } } class Two implements Summable { public function getNumericValue(): int { return 2; } } function sumNumbers(Summable ...$numbers): int { return array_reduce($numbers, fn($sum, Summable $number) => $sum += $number->getNumericValue()); } $numbers = [new One, new Two, new Two]; echo sumNumbers(...$numbers);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
5

preferences:
66.5 ms | 406 KiB | 5 Q