1
|
|
|
<?php
|
2
|
|
|
declare(strict_types = 1);
|
3
|
|
|
namespace Converter\Init;
|
4
|
|
|
|
5
|
|
|
class Data
|
6
|
|
|
{
|
7
|
16 |
|
public function __construct()
|
8
|
|
|
{
|
9
|
|
|
//@formatter:off
|
10
|
16 |
|
$this->arrExponents = ['копе', 'рубл', 'тысяч', 'миллион', 'миллиард', 'триллион',
|
|
|
|
|
11
|
|
|
'квадриллион', 'квинтиллион', 'секстиллион',
|
12
|
|
|
'септиллион', 'октиллион', 'нониллион', 'дециллион', 'ундециллион', 'дуодециллион', 'тредециллион',
|
13
|
|
|
'кваттордециллион', 'квиндециллион', 'сексдециллион', 'септендециллион', 'октодециллион', 'новемдециллион',
|
14
|
|
|
'вигинтиллион', 'унвигинтиллион', 'дуовигинтиллион', 'тревигинтиллион', 'кватторвигинтиллион',
|
15
|
|
|
'квинвигинтиллион', 'сексвигинтиллион', 'септенвигинтиллион', 'октовигинтиллион', 'новемвигинтиллион',
|
16
|
|
|
'тригинтиллион', 'унтригинтиллион', 'дуотригинтиллион', 'третригинтиллион', 'кватортригинтиллион',
|
17
|
|
|
'квинтригинтиллион', 'секстригинтиллион', 'септентригинтиллион', 'октотригинтиллион', 'новемтригинтиллион',
|
18
|
|
|
'квадрагинтиллион', 'унквадрагинтиллион', 'дуоквадрагинтиллион', 'треквадрагинтиллион',
|
19
|
|
|
'кваторквадрагинтиллион', 'квинквадрагинтиллион', 'сексквадрагинтиллион', 'септенквадрагинтиллион',
|
20
|
|
|
'октоквадрагинтиллион', 'новемквадрагинтиллион', 'квинквагинтиллион', 'унквинкагинтиллион',
|
21
|
|
|
'дуоквинкагинтиллион', 'треквинкагинтиллион', 'кваторквинкагинтиллион', 'квинквинкагинтиллион',
|
22
|
|
|
'сексквинкагинтиллион', 'септенквинкагинтиллион', 'октоквинкагинтиллион', 'новемквинкагинтиллион',
|
23
|
|
|
'сексагинтиллион', 'унсексагинтиллион', 'дуосексагинтиллион', 'тресексагинтиллион', 'кваторсексагинтиллион',
|
24
|
|
|
'квинсексагинтиллион', 'секссексагинтиллион', 'септенсексагинтиллион', 'октосексагинтиллион',
|
25
|
|
|
'новемсексагинтиллион', 'септагинтиллион', 'унсептагинтиллион', 'дуосептагинтиллион', 'тресептагинтиллион',
|
26
|
|
|
'кваторсептагинтиллион', 'квинсептагинтиллион', 'секссептагинтиллион', 'септенсептагинтиллион',
|
27
|
|
|
'октосептагинтиллион', 'новемсептагинтиллион', 'октогинтиллион', 'уноктогинтиллион', 'дуооктогинтиллион',
|
28
|
|
|
'треоктогинтиллион', 'кватороктогинтиллион', 'квиноктогинтиллион', 'сексоктогинтиллион',
|
29
|
|
|
'септоктогинтиллион', 'октаоктогинтиллион', 'новемоктогинтиллион', 'нонагинтиллион', 'уннонагинтиллион',
|
30
|
|
|
'дуононагинтиллион', 'тренонагинтиллион', 'кваторнонагинтиллион', 'квиннонагинтиллион',
|
31
|
|
|
'секснонагинтиллион', 'септеннонагинтиллион', 'октононагинтиллион', 'новемнонагинтиллион', 'центиллион',
|
32
|
|
|
'анцентиллион', 'дуоцентиллион', 'трецентиллион', 'кватторцентиллион', 'квинцентиллион', 'сексцентиллион',
|
33
|
|
|
'септемцентиллион', 'октоцентиллион', 'новемцентиллион', 'децицентиллион', 'ундецицентиллион',
|
34
|
|
|
'дуодецицентиллион', 'тредецицентиллион', 'кваттордцецицентиллион', 'квиндецицентиллион',
|
35
|
|
|
'седецицентиллион', 'септемдецицентиллион', 'октодецицентиллион', 'новемдецицентиллион',
|
36
|
|
|
'вигинтицентиллион', 'унвигинтицентиллион', 'дуовигинтицентиллион', 'тривигинтицентиллион',
|
37
|
|
|
'кватторвигинтицентиллион', 'квинвигинтицентиллион', 'сексвигинтицентиллион', 'септемвигинтицентиллион',
|
38
|
|
|
'октовигинтицентиллион', 'новемвигинтицентиллион', 'тригинтацентиллион', 'унтригинтацентиллион',
|
39
|
|
|
'дуотригинтацентиллион', 'тритригинтацентиллион', 'кваттортригинтацентиллион', 'квинтригинтацентиллион',
|
40
|
|
|
'секстригинтацентиллион', 'септемтригинтацентиллион', 'октотригинтацентиллион', 'новемтригинтацентиллион',
|
41
|
|
|
'квадрагинтацентиллион', 'унквадрагинтацентиллион', 'дуоквадрагинтацентиллион', 'триквадрагинтацентиллион',
|
42
|
|
|
'кватторквадрагинтацентиллион', 'квинквадрагинтацентиллион', 'сексквадрагинтацентиллион',
|
43
|
|
|
'септемквадрагинтацентиллион', 'октоквадрагинтацентиллион', 'новемквадрагинтацентиллион',
|
44
|
|
|
'квинкагинтацентиллион', 'унквинкагинтацентиллион', 'дуоквинкагинтацентиллион', 'триквинкагинтацентиллион',
|
45
|
|
|
'кватторквинкагинтацентиллион', 'квинквинкагинтацентиллион', 'сексквинкагинтацентиллион',
|
46
|
|
|
'септемквинкагинтацентиллион', 'октоквинкагинтацентиллион', 'новемквинкагинтацентиллион',
|
47
|
|
|
'сексагинтацентиллион', 'унсексагинтацентиллион', 'дуосексагинтацентиллион', 'трисексагинтацентиллион',
|
48
|
|
|
'кватторсексагинтацентиллион', 'квинсексагинтацентиллион', 'секссексагинтацентиллион',
|
49
|
|
|
'септемсексагинтацентиллион', 'октосексагинтацентиллион', 'новемсексагинтацентиллион'];
|
50
|
16 |
|
$this->arrUnits = ['один ', 'два ', 'три ', 'четыре ', 'пять ', 'шесть ', 'семь ', 'восемь ', 'девять ',
|
|
|
|
|
51
|
|
|
'десять ', 'одиннадцать ', 'двенадцать ', 'тринадцать ', 'четырнадцать ', 'пятнадцать ', 'шестнадцать ',
|
52
|
|
|
'семнадцать ', 'восемнадцать ', 'девятнадцать '];
|
53
|
16 |
|
$this->arrTens = ['десять ', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ',
|
|
|
|
|
54
|
|
|
'восемьдесят ', 'девяносто '];
|
55
|
16 |
|
$this->arrHundreds = ['сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ',
|
|
|
|
|
56
|
|
|
'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот '];
|
57
|
16 |
|
$this->arrSuffix = [['йка', 'ь', 'а ', ' '], ['йки', 'я', 'и ', 'а '], ['ек', 'ей', ' ', 'ов ']];
|
|
|
|
|
58
|
|
|
//@formatter:on
|
59
|
16 |
|
}
|
60
|
|
|
|
61
|
|
|
/**
|
62
|
|
|
* @return int - number of elements + 1 in Exponents array (if mult. by 3 we get max possible number for N2T Class).
|
63
|
|
|
*/
|
64
|
8 |
|
public function getExpSize(): int
|
65
|
|
|
{
|
66
|
8 |
|
return count($this->arrExponents) - 2;
|
67
|
|
|
}
|
68
|
|
|
}
|
69
|
|
|
|
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: