- var_dump: documentation ( source)
- floor: documentation ( source)
<?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));