3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Staring straight up into the sky ... oh my my error_reporting(-1); mb_internal_encoding('utf-8'); /* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */ function inclineWord($number, $word1, $word2, $word3) { if ($number % 100 >= 10 && $number % 100 <= 19) { return $word3; } elseif ($number % 10 >= 2 && $number % 10 <= 4) { return $word2; } elseif ($number % 10 == 1) { return $word1; } else { return $word3; } } /* Преобразует числа от 0 до 999 в текст. Параметр $isFemale равен нулю, если мы считаем число для мужского рода (один рубль), и 1 — для женского (одна тысяча) */ function smallNumberToText($number, $isFemale) { $spelling = array( 0 => 'ноль', 10 => 'десять', 100 => 'сто', 1 => 'один', 11 => 'одиннадцать', 20 => 'двадцать', 200 => 'двести', 2 => 'два', 12 => 'двенадцать', 30 => 'тридцать', 300 => 'триста', 3 => 'три', 13 => 'тринадцать', 40 => 'сорок', 400 => 'четыреста', 4 => 'четыре', 14 => 'четырнадцать', 50 => 'пятьдесят', 500 => 'пятьсот', 5 => 'пять', 15 => 'пятнадцать', 60 => 'шестьдесят', 600 => 'шестьсот', 6 => 'шесть', 16 => 'шестнадцать', 70 => 'семьдесят', 700 => 'семьсот', 7 => 'семь', 17 => 'семнадцать', 80 => 'восемьдесят', 800 => 'восемьсот', 8 => 'восемь', 18 => 'восемнадцать', 90 => 'девяносто', 900 => 'девятьсот', 9 => 'девять', 19 => 'девятнадцать' ); $femaleSpelling = array( 1 => 'одна', 2 => 'две' ); $text = ""; if ($number > 100) { $reviewNumber = floor($number / 100) * 100; $text = $text." ".$spelling[$reviewNumber]; $number %= 100; } if ($number >= 10 && $number <= 19) { return $text." ".$spelling[$number]; } elseif ($number > 10) { $reviewNumber = floor($number / 10) * 10; $text = $text." ".$spelling[$reviewNumber]; $number %= 10; } if ($isFemale == 1 && $number == 1) { $text = $text." ".$femaleSpelling[1]; } elseif ($isFemale == 1 && $number == 2) { $text = $text." ".$femaleSpelling[2]; } elseif ($number > 0) { $text = $text." ".$spelling[$number]; } return $text; } function numberToText($number) { $baseNumber = $number; $text = ""; if ($number == 0) { return "ноль (0) рублей"; exit; } if (floor($number / 1000000) >= 1) { $numberIterationToSplit = 3; } elseif (floor($number / 1000) >= 1) { $numberIterationToSplit = 2; } else { $numberIterationToSplit = 1; } for ($i = 0; $i < $numberIterationToSplit; $i++) { if ($number % 1000 == 0 && $i != 0) { $number = floor($number / 1000); continue; } if ($i == 1) { $isFemale = 1; } else { $isFemale = 0; } if ($i == 0){ $wordForNumber = "(".$baseNumber.") ".inclineWord($number, "рубль", "рубля", "рублей"); } elseif ($i == 1) { $wordForNumber = inclineWord($number, "тысяча", "тысячи", "тысяч"); } else { $wordForNumber = inclineWord($number, "миллион", "миллиона", "миллионов"); } $text = smallNumberToText($number % 1000, $isFemale)." ".$wordForNumber.$text; $number = floor($number / 1000); } return $text; } /* Вызовем функцию несколько раз */ $amount1 = mt_rand(1,99999999); $text1 = numberToText($amount1); echo "На вашем счету{$text1}\n"; $amount2 = mt_rand(1,99999999); $text2 = numberToText($amount2); echo "На вашем счету{$text2}\n"; $amount3 = mt_rand(1,99999999); $text3 = numberToText($amount3); echo "На вашем счету{$text3}\n"; $amount4 = mt_rand(1,99999999); $text4 = numberToText($amount4); echo "На вашем счету{$text4}\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/NSeMe
function name:  (null)
number of ops:  59
compiled vars:  !0 = $amount1, !1 = $text1, !2 = $amount2, !3 = $text2, !4 = $amount3, !5 = $text3, !6 = $amount4, !7 = $text4
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 -1
          2        DO_ICALL                                                 
    5     3        INIT_FCALL                                               'mb_internal_encoding'
          4        SEND_VAL                                                 'utf-8'
          5        DO_ICALL                                                 
  120     6        INIT_FCALL                                               'mt_rand'
          7        SEND_VAL                                                 1
          8        SEND_VAL                                                 99999999
          9        DO_ICALL                                         $10     
         10        ASSIGN                                                   !0, $10
  121    11        INIT_FCALL                                               'numbertotext'
         12        SEND_VAR                                                 !0
         13        DO_FCALL                                      0  $12     
         14        ASSIGN                                                   !1, $12
  123    15        ROPE_INIT                                     3  ~15     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83'
         16        ROPE_ADD                                      1  ~15     ~15, !1
         17        ROPE_END                                      2  ~14     ~15, '%0A'
         18        ECHO                                                     ~14
  125    19        INIT_FCALL                                               'mt_rand'
         20        SEND_VAL                                                 1
         21        SEND_VAL                                                 99999999
         22        DO_ICALL                                         $17     
         23        ASSIGN                                                   !2, $17
  126    24        INIT_FCALL                                               'numbertotext'
         25        SEND_VAR                                                 !2
         26        DO_FCALL                                      0  $19     
         27        ASSIGN                                                   !3, $19
  128    28        ROPE_INIT                                     3  ~22     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83'
         29        ROPE_ADD                                      1  ~22     ~22, !3
         30        ROPE_END                                      2  ~21     ~22, '%0A'
         31        ECHO                                                     ~21
  130    32        INIT_FCALL                                               'mt_rand'
         33        SEND_VAL                                                 1
         34        SEND_VAL                                                 99999999
         35        DO_ICALL                                         $24     
         36        ASSIGN                                                   !4, $24
  131    37        INIT_FCALL                                               'numbertotext'
         38        SEND_VAR                                                 !4
         39        DO_FCALL                                      0  $26     
         40        ASSIGN                                                   !5, $26
  133    41        ROPE_INIT                                     3  ~29     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83'
         42        ROPE_ADD                                      1  ~29     ~29, !5
         43        ROPE_END                                      2  ~28     ~29, '%0A'
         44        ECHO                                                     ~28
  135    45        INIT_FCALL                                               'mt_rand'
         46        SEND_VAL                                                 1
         47        SEND_VAL                                                 99999999
         48        DO_ICALL                                         $31     
         49        ASSIGN                                                   !6, $31
  136    50        INIT_FCALL                                               'numbertotext'
         51        SEND_VAR                                                 !6
         52        DO_FCALL                                      0  $33     
         53        ASSIGN                                                   !7, $33
  138    54        ROPE_INIT                                     3  ~36     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83'
         55        ROPE_ADD                                      1  ~36     ~36, !7
         56        ROPE_END                                      2  ~35     ~36, '%0A'
         57        ECHO                                                     ~35
         58      > RETURN                                                   1

Function inclineword:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 13
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 46) Position 1 = 16, Position 2 = 19
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 22
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
Branch analysis from position: 10
filename:       /in/NSeMe
function name:  inclineWord
number of ops:  29
compiled vars:  !0 = $number, !1 = $word1, !2 = $word2, !3 = $word3
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
   10     4        MOD                                              ~4      !0, 100
          5        IS_SMALLER_OR_EQUAL                              ~5      10, ~4
          6      > JMPZ_EX                                          ~5      ~5, ->10
          7    >   MOD                                              ~6      !0, 100
          8        IS_SMALLER_OR_EQUAL                              ~7      ~6, 19
          9        BOOL                                             ~5      ~7
         10    > > JMPZ                                                     ~5, ->13
   11    11    > > RETURN                                                   !3
         12*       JMP                                                      ->28
   12    13    >   MOD                                              ~8      !0, 10
         14        IS_SMALLER_OR_EQUAL                              ~9      2, ~8
         15      > JMPZ_EX                                          ~9      ~9, ->19
         16    >   MOD                                              ~10     !0, 10
         17        IS_SMALLER_OR_EQUAL                              ~11     ~10, 4
         18        BOOL                                             ~9      ~11
         19    > > JMPZ                                                     ~9, ->22
   13    20    > > RETURN                                                   !2
         21*       JMP                                                      ->28
   14    22    >   MOD                                              ~12     !0, 10
         23        IS_EQUAL                                                 ~12, 1
         24      > JMPZ                                                     ~13, ->27
   15    25    > > RETURN                                                   !1
         26*       JMP                                                      ->28
   17    27    > > RETURN                                                   !3
   19    28*     > RETURN                                                   null

End of function inclineword

Function smallnumbertotext:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 18
Branch analysis from position: 7
2 jumps found. (Code = 46) Position 1 = 20, Position 2 = 22
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 28
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 41
Branch analysis from position: 30
2 jumps found. (Code = 46) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 46, Position 2 = 51
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 67
Branch analysis from position: 67
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 51
2 jumps found. (Code = 46) Position 1 = 53, Position 2 = 55
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 56, Position 2 = 61
Branch analysis from position: 56
1 jumps found. (Code = 42) Position 1 = 67
Branch analysis from position: 67
Branch analysis from position: 61
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 67
Branch analysis from position: 63
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 67
Branch analysis from position: 55
Branch analysis from position: 45
Branch analysis from position: 41
Branch analysis from position: 22
Branch analysis from position: 18
filename:       /in/NSeMe
function name:  smallNumberToText
number of ops:  69
compiled vars:  !0 = $number, !1 = $isFemale, !2 = $spelling, !3 = $femaleSpelling, !4 = $text, !5 = $reviewNumber
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   26     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   28     2        ASSIGN                                                   !2, <array>
   41     3        ASSIGN                                                   !3, <array>
   45     4        ASSIGN                                                   !4, ''
   47     5        IS_SMALLER                                               100, !0
          6      > JMPZ                                                     ~9, ->18
   48     7    >   INIT_FCALL                                               'floor'
          8        DIV                                              ~10     !0, 100
          9        SEND_VAL                                                 ~10
         10        DO_ICALL                                         $11     
         11        MUL                                              ~12     $11, 100
         12        ASSIGN                                                   !5, ~12
   49    13        CONCAT                                           ~14     !4, '+'
         14        FETCH_DIM_R                                      ~15     !2, !5
         15        CONCAT                                           ~16     ~14, ~15
         16        ASSIGN                                                   !4, ~16
   50    17        ASSIGN_OP                                     5          !0, 100
   53    18    >   IS_SMALLER_OR_EQUAL                              ~19     10, !0
         19      > JMPZ_EX                                          ~19     ~19, ->22
         20    >   IS_SMALLER_OR_EQUAL                              ~20     !0, 19
         21        BOOL                                             ~19     ~20
         22    > > JMPZ                                                     ~19, ->28
   54    23    >   CONCAT                                           ~21     !4, '+'
         24        FETCH_DIM_R                                      ~22     !2, !0
         25        CONCAT                                           ~23     ~21, ~22
         26      > RETURN                                                   ~23
         27*       JMP                                                      ->41
   55    28    >   IS_SMALLER                                               10, !0
         29      > JMPZ                                                     ~24, ->41
   56    30    >   INIT_FCALL                                               'floor'
         31        DIV                                              ~25     !0, 10
         32        SEND_VAL                                                 ~25
         33        DO_ICALL                                         $26     
         34        MUL                                              ~27     $26, 10
         35        ASSIGN                                                   !5, ~27
   57    36        CONCAT                                           ~29     !4, '+'
         37        FETCH_DIM_R                                      ~30     !2, !5
         38        CONCAT                                           ~31     ~29, ~30
         39        ASSIGN                                                   !4, ~31
   58    40        ASSIGN_OP                                     5          !0, 10
   61    41    >   IS_EQUAL                                         ~34     !1, 1
         42      > JMPZ_EX                                          ~34     ~34, ->45
         43    >   IS_EQUAL                                         ~35     !0, 1
         44        BOOL                                             ~34     ~35
         45    > > JMPZ                                                     ~34, ->51
   62    46    >   CONCAT                                           ~36     !4, '+'
         47        FETCH_DIM_R                                      ~37     !3, 1
         48        CONCAT                                           ~38     ~36, ~37
         49        ASSIGN                                                   !4, ~38
         50      > JMP                                                      ->67
   63    51    >   IS_EQUAL                                         ~40     !1, 1
         52      > JMPZ_EX                                          ~40     ~40, ->55
         53    >   IS_EQUAL                                         ~41     !0, 2
         54        BOOL                                             ~40     ~41
         55    > > JMPZ                                                     ~40, ->61
   64    56    >   CONCAT                                           ~42     !4, '+'
         57        FETCH_DIM_R                                      ~43     !3, 2
         58        CONCAT                                           ~44     ~42, ~43
         59        ASSIGN                                                   !4, ~44
         60      > JMP                                                      ->67
   65    61    >   IS_SMALLER                                               0, !0
         62      > JMPZ                                                     ~46, ->67
   66    63    >   CONCAT                                           ~47     !4, '+'
         64        FETCH_DIM_R                                      ~48     !2, !0
         65        CONCAT                                           ~49     ~47, ~48
         66        ASSIGN                                                   !4, ~49
   69    67    > > RETURN                                                   !4
   70    68*     > RETURN                                                   null

End of function smallnumbertotext

Function numbertotext:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 88
Branch analysis from position: 88
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 26
Branch analysis from position: 90
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 38
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 87
Branch analysis from position: 87
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 26
Branch analysis from position: 90
Branch analysis from position: 26
Branch analysis from position: 38
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 42
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 56
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 26
Branch analysis from position: 90
Branch analysis from position: 26
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 66
Branch analysis from position: 58
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 26
Branch analysis from position: 90
Branch analysis from position: 26
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 56
Branch analysis from position: 45
Branch analysis from position: 56
Branch analysis from position: 31
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 88
Branch analysis from position: 88
filename:       /in/NSeMe
function name:  numberToText
number of ops:  92
compiled vars:  !0 = $number, !1 = $baseNumber, !2 = $text, !3 = $numberIterationToSplit, !4 = $i, !5 = $isFemale, !6 = $wordForNumber
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   72     0  E >   RECV                                             !0      
   73     1        ASSIGN                                                   !1, !0
   75     2        ASSIGN                                                   !2, ''
   77     3        IS_EQUAL                                                 !0, 0
          4      > JMPZ                                                     ~9, ->7
   78     5    > > RETURN                                                   '%D0%BD%D0%BE%D0%BB%D1%8C+%280%29+%D1%80%D1%83%D0%B1%D0%BB%D0%B5%D0%B9'
   79     6*       EXIT                                                     
   82     7    >   INIT_FCALL                                               'floor'
          8        DIV                                              ~10     !0, 1000000
          9        SEND_VAL                                                 ~10
         10        DO_ICALL                                         $11     
         11        IS_SMALLER_OR_EQUAL                                      1, $11
         12      > JMPZ                                                     ~12, ->15
   83    13    >   ASSIGN                                                   !3, 3
         14      > JMP                                                      ->24
   84    15    >   INIT_FCALL                                               'floor'
         16        DIV                                              ~14     !0, 1000
         17        SEND_VAL                                                 ~14
         18        DO_ICALL                                         $15     
         19        IS_SMALLER_OR_EQUAL                                      1, $15
         20      > JMPZ                                                     ~16, ->23
   85    21    >   ASSIGN                                                   !3, 2
         22      > JMP                                                      ->24
   87    23    >   ASSIGN                                                   !3, 1
   90    24    >   ASSIGN                                                   !4, 0
         25      > JMP                                                      ->88
   91    26    >   MOD                                              ~20     !0, 1000
         27        IS_EQUAL                                         ~21     ~20, 0
         28      > JMPZ_EX                                          ~21     ~21, ->31
         29    >   IS_NOT_EQUAL                                     ~22     !4, 0
         30        BOOL                                             ~21     ~22
         31    > > JMPZ                                                     ~21, ->38
   92    32    >   INIT_FCALL                                               'floor'
         33        DIV                                              ~23     !0, 1000
         34        SEND_VAL                                                 ~23
         35        DO_ICALL                                         $24     
         36        ASSIGN                                                   !0, $24
   93    37      > JMP                                                      ->87
   96    38    >   IS_EQUAL                                                 !4, 1
         39      > JMPZ                                                     ~26, ->42
   97    40    >   ASSIGN                                                   !5, 1
         41      > JMP                                                      ->43
   99    42    >   ASSIGN                                                   !5, 0
  102    43    >   IS_EQUAL                                                 !4, 0
         44      > JMPZ                                                     ~29, ->56
  103    45    >   CONCAT                                           ~30     '%28', !1
         46        CONCAT                                           ~31     ~30, '%29+'
         47        INIT_FCALL                                               'inclineword'
         48        SEND_VAR                                                 !0
         49        SEND_VAL                                                 '%D1%80%D1%83%D0%B1%D0%BB%D1%8C'
         50        SEND_VAL                                                 '%D1%80%D1%83%D0%B1%D0%BB%D1%8F'
         51        SEND_VAL                                                 '%D1%80%D1%83%D0%B1%D0%BB%D0%B5%D0%B9'
         52        DO_FCALL                                      0  $32     
         53        CONCAT                                           ~33     ~31, $32
         54        ASSIGN                                                   !6, ~33
         55      > JMP                                                      ->73
  104    56    >   IS_EQUAL                                                 !4, 1
         57      > JMPZ                                                     ~35, ->66
  105    58    >   INIT_FCALL                                               'inclineword'
         59        SEND_VAR                                                 !0
         60        SEND_VAL                                                 '%D1%82%D1%8B%D1%81%D1%8F%D1%87%D0%B0'
         61        SEND_VAL                                                 '%D1%82%D1%8B%D1%81%D1%8F%D1%87%D0%B8'
         62        SEND_VAL                                                 '%D1%82%D1%8B%D1%81%D1%8F%D1%87'
         63        DO_FCALL                                      0  $36     
         64        ASSIGN                                                   !6, $36
         65      > JMP                                                      ->73
  107    66    >   INIT_FCALL                                               'inclineword'
         67        SEND_VAR                                                 !0
         68        SEND_VAL                                                 '%D0%BC%D0%B8%D0%BB%D0%BB%D0%B8%D0%BE%D0%BD'
         69        SEND_VAL                                                 '%D0%BC%D0%B8%D0%BB%D0%BB%D0%B8%D0%BE%D0%BD%D0%B0'
         70        SEND_VAL                                                 '%D0%BC%D0%B8%D0%BB%D0%BB%D0%B8%D0%BE%D0%BD%D0%BE%D0%B2'
         71        DO_FCALL                                      0  $38     
         72        ASSIGN                                                   !6, $38
  110    73    >   INIT_FCALL                                               'smallnumbertotext'
         74        MOD                                              ~40     !0, 1000
         75        SEND_VAL                                                 ~40
         76        SEND_VAR                                                 !5
         77        DO_FCALL                                      0  $41     
         78        CONCAT                                           ~42     $41, '+'
         79        CONCAT                                           ~43     ~42, !6
         80        CONCAT                                           ~44     ~43, !2
         81        ASSIGN                                                   !2, ~44
  112    82        INIT_FCALL                                               'floor'
         83        DIV                                              ~46     !0, 1000
         84        SEND_VAL                                                 ~46
         85        DO_ICALL                                         $47     
         86        ASSIGN                                                   !0, $47
   90    87    >   PRE_INC                                                  !4
         88    >   IS_SMALLER                                               !4, !3
         89      > JMPNZ                                                    ~50, ->26
  115    90    > > RETURN                                                   !2
  117    91*     > RETURN                                                   null

End of function numbertotext

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.45 ms | 1423 KiB | 29 Q