3v4l.org

run code in 300+ PHP versions simultaneously
<?php class NumberRank { public readonly int $power; public readonly int $number; public function __construct(int $power, int $number) { $this->power = $power; $this->number = $number; } } class RankedNumber { public readonly array $ranks; public function __construct(int $number) { $power = 0; $ranks = []; while ($number > 0) { $rankNumber = $number % 1000; $number = (int) floor($number / 1000); $power += 3; $ranks[$power] = new NumberRank($power, $rankNumber); } $this->ranks = $ranks; } } class Dictionary {} interface NumberToTextSpelling { public function spell(RankedNumber $number, Dictionary $dictionary): string; } class NumberToRussianTextSpelling implements NumberToTextSpelling { public function spell(RankedNumber $number, Dictionary $dictionary): string { // actual translation return ''; } } var_dump(new RankedNumber(11012013));

preferences:
27.68 ms | 405 KiB | 5 Q