3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* Дана сумма, находящаяся в банке на счету, в рублях. Вывести ее в текстовом виде вроде "шестнадцать миллионов десять тысяч три (16010003) рубля". */ error_reporting(-1); mb_internal_encoding('UTF-8'); /* Делает первую букву предложения заглавной */ function makeFirstLetterUppercase($text) { $text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1, NULL); return $text; } /* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */ function inclineWord($number, $word1, $word2, $word5) { $exception = $number; $number = $number % 10; if (($number == 1) && ($exception != 11)) { return $word1; } elseif (($number >= 2) && ($number <= 4) && (($exception <= 10) || ($exception >= 15))) { return $word2; } else { return $word5; } } /* Преобразует числа от 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 => 'девятнадцать' ); if (($isFemale == 1) || ($isFemale == 2)) { $spelling[1] = 'одна'; $spelling[2] = 'две'; } $firstDigit = floor($number / 100) * 100; // Получаем кол-во сотен (900 из числа 985) $middleDigit = floor(($number % 100) / 10) * 10; // Получаем кол-во десятков (80 из числа 985) $lastDigit = $number % 10; // Получаем кол-во единиц (5 из числа 985) if ($firstDigit != 0) { $text[] = $spelling[$firstDigit]; } if (($middleDigit != 0) && ($middleDigit >= 20)) { $text[] = $spelling[$middleDigit]; } elseif (($middleDigit != 0) && ($middleDigit <= 19)) { $text[] = $spelling[$middleDigit + $lastDigit]; $lastDigit = 0; } if ($lastDigit != 0) { $text[] = $spelling[$lastDigit]; } return implode($text, ' '); } function numberToText($number) { $millions = floor($number / 1000000); // Получаем кол-во миллинов (99 из числа 99965985) $thousands = floor(($number % 1000000) / 1000); // Получаем кол-во тысяч (965 из числа 99965985) $hundreds = $number % 1000; // Получаем кол-во сотен (985 из числа 99965985) if ($millions != 0) { $text[] = smallNumberToText($millions, 0) . inclineWord($millions % 10, ' миллион', ' миллиона', ' миллионов'); } if ($thousands != 0) { $text[] = smallNumberToText($thousands, $thousands % 10) . inclineWord($thousands % 10, ' тысяча', ' тысячи', ' тысяч'); } if ($hundreds != 0) { $text[] = smallNumberToText($hundreds, 0) . inclineWord($hundreds, ' рубль', ' рубля', ' рублей'); } if ($number == 0) { $text[] = '0 рублей'; } $text = makeFirstLetterUppercase(implode($text, ' ') . " ({$number})"); return $text; } $amount1 = mt_rand(0, 99999999); $text1 = numberToText($amount1); echo "На вашем счету: {$text1}\n"; $amount2 = mt_rand(0, 99999999); $text2 = numberToText($amount2); echo "На вашем счету: {$text2}\n"; $amount3 = mt_rand(0, 99999999); $text3 = numberToText($amount3); echo "На вашем счету: {$text3}\n"; $amount4 = mt_rand(0, 99999999); $text4 = numberToText($amount4); echo "На вашем счету: {$text4}\n"; $amount5 = mt_rand(0, 99999999); $text5 = numberToText($amount5); echo "На вашем счету: {$text5}\n"; $amount6 = mt_rand(0, 99999999); $text6 = numberToText($amount6); echo "На вашем счету: {$text6}\n"; for ($i = 0; $i < 101; $i++) { $text7 = numberToText($i); echo "На вашем счету: {$text7}\n"; }

Abusive script

This script was stopped while abusing our resources

Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 95
Branch analysis from position: 95
2 jumps found. (Code = 44) Position 1 = 97, Position 2 = 86
Branch analysis from position: 97
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 86
2 jumps found. (Code = 44) Position 1 = 97, Position 2 = 86
Branch analysis from position: 97
Branch analysis from position: 86
filename:       /in/psi7R
function name:  (null)
number of ops:  98
compiled vars:  !0 = $amount1, !1 = $text1, !2 = $amount2, !3 = $text2, !4 = $amount3, !5 = $text3, !6 = $amount4, !7 = $text4, !8 = $amount5, !9 = $text5, !10 = $amount6, !11 = $text6, !12 = $i, !13 = $text7
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 -1
          2        DO_ICALL                                                 
    7     3        INIT_FCALL                                               'mb_internal_encoding'
          4        SEND_VAL                                                 'UTF-8'
          5        DO_ICALL                                                 
   99     6        INIT_FCALL                                               'mt_rand'
          7        SEND_VAL                                                 0
          8        SEND_VAL                                                 99999999
          9        DO_ICALL                                         $16     
         10        ASSIGN                                                   !0, $16
  100    11        INIT_FCALL                                               'numbertotext'
         12        SEND_VAR                                                 !0
         13        DO_FCALL                                      0  $18     
         14        ASSIGN                                                   !1, $18
  101    15        ROPE_INIT                                     3  ~21     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         16        ROPE_ADD                                      1  ~21     ~21, !1
         17        ROPE_END                                      2  ~20     ~21, '%0A'
         18        ECHO                                                     ~20
  103    19        INIT_FCALL                                               'mt_rand'
         20        SEND_VAL                                                 0
         21        SEND_VAL                                                 99999999
         22        DO_ICALL                                         $23     
         23        ASSIGN                                                   !2, $23
  104    24        INIT_FCALL                                               'numbertotext'
         25        SEND_VAR                                                 !2
         26        DO_FCALL                                      0  $25     
         27        ASSIGN                                                   !3, $25
  105    28        ROPE_INIT                                     3  ~28     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         29        ROPE_ADD                                      1  ~28     ~28, !3
         30        ROPE_END                                      2  ~27     ~28, '%0A'
         31        ECHO                                                     ~27
  107    32        INIT_FCALL                                               'mt_rand'
         33        SEND_VAL                                                 0
         34        SEND_VAL                                                 99999999
         35        DO_ICALL                                         $30     
         36        ASSIGN                                                   !4, $30
  108    37        INIT_FCALL                                               'numbertotext'
         38        SEND_VAR                                                 !4
         39        DO_FCALL                                      0  $32     
         40        ASSIGN                                                   !5, $32
  109    41        ROPE_INIT                                     3  ~35     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         42        ROPE_ADD                                      1  ~35     ~35, !5
         43        ROPE_END                                      2  ~34     ~35, '%0A'
         44        ECHO                                                     ~34
  111    45        INIT_FCALL                                               'mt_rand'
         46        SEND_VAL                                                 0
         47        SEND_VAL                                                 99999999
         48        DO_ICALL                                         $37     
         49        ASSIGN                                                   !6, $37
  112    50        INIT_FCALL                                               'numbertotext'
         51        SEND_VAR                                                 !6
         52        DO_FCALL                                      0  $39     
         53        ASSIGN                                                   !7, $39
  113    54        ROPE_INIT                                     3  ~42     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         55        ROPE_ADD                                      1  ~42     ~42, !7
         56        ROPE_END                                      2  ~41     ~42, '%0A'
         57        ECHO                                                     ~41
  115    58        INIT_FCALL                                               'mt_rand'
         59        SEND_VAL                                                 0
         60        SEND_VAL                                                 99999999
         61        DO_ICALL                                         $44     
         62        ASSIGN                                                   !8, $44
  116    63        INIT_FCALL                                               'numbertotext'
         64        SEND_VAR                                                 !8
         65        DO_FCALL                                      0  $46     
         66        ASSIGN                                                   !9, $46
  117    67        ROPE_INIT                                     3  ~49     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         68        ROPE_ADD                                      1  ~49     ~49, !9
         69        ROPE_END                                      2  ~48     ~49, '%0A'
         70        ECHO                                                     ~48
  119    71        INIT_FCALL                                               'mt_rand'
         72        SEND_VAL                                                 0
         73        SEND_VAL                                                 99999999
         74        DO_ICALL                                         $51     
         75        ASSIGN                                                   !10, $51
  120    76        INIT_FCALL                                               'numbertotext'
         77        SEND_VAR                                                 !10
         78        DO_FCALL                                      0  $53     
         79        ASSIGN                                                   !11, $53
  121    80        ROPE_INIT                                     3  ~56     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         81        ROPE_ADD                                      1  ~56     ~56, !11
         82        ROPE_END                                      2  ~55     ~56, '%0A'
         83        ECHO                                                     ~55
  123    84        ASSIGN                                                   !12, 0
         85      > JMP                                                      ->95
  124    86    >   INIT_FCALL                                               'numbertotext'
         87        SEND_VAR                                                 !12
         88        DO_FCALL                                      0  $59     
         89        ASSIGN                                                   !13, $59
  125    90        ROPE_INIT                                     3  ~62     '%D0%9D%D0%B0+%D0%B2%D0%B0%D1%88%D0%B5%D0%BC+%D1%81%D1%87%D0%B5%D1%82%D1%83%3A+'
         91        ROPE_ADD                                      1  ~62     ~62, !13
         92        ROPE_END                                      2  ~61     ~62, '%0A'
         93        ECHO                                                     ~61
  123    94        PRE_INC                                                  !12
         95    >   IS_SMALLER                                               !12, 101
         96      > JMPNZ                                                    ~65, ->86
  126    97    > > RETURN                                                   1

Function makefirstletteruppercase:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/psi7R
function name:  makeFirstLetterUppercase
number of ops:  18
compiled vars:  !0 = $text
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   RECV                                             !0      
   12     1        INIT_FCALL                                               'mb_strtoupper'
          2        INIT_FCALL                                               'mb_substr'
          3        SEND_VAR                                                 !0
          4        SEND_VAL                                                 0
          5        SEND_VAL                                                 1
          6        DO_ICALL                                         $1      
          7        SEND_VAR                                                 $1
          8        DO_ICALL                                         $2      
          9        INIT_FCALL                                               'mb_substr'
         10        SEND_VAR                                                 !0
         11        SEND_VAL                                                 1
         12        SEND_VAL                                                 null
         13        DO_ICALL                                         $3      
         14        CONCAT                                           ~4      $2, $3
         15        ASSIGN                                                   !0, ~4
   14    16      > RETURN                                                   !0
   15    17*     > RETURN                                                   null

End of function makefirstletteruppercase

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

End of function inclineword

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

End of function smallnumbertotext

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

End of function numbertotext

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.05 ms | 1035 KiB | 34 Q