3v4l.org

run code in 300+ PHP versions simultaneously
<?php function yaziylasayi($sayi) { $o = array( 'birlik' => array('bir', 'iki', 'üç', 'dört', 'beş', 'altı', 'yedi', 'sekiz', 'dokuz'), 'onluk' => array('on', 'yirmi', 'otuz', 'kırk', 'elli', 'altmış', 'yetmiş', 'seksen', 'doksan'), 'basamak' => array('yüz', 'bin', 'milyon', 'milyar', 'trilyon', 'katrilyon') ); $basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3)); $basamak_sayisi = count($basamak); for($i=0; $i < $basamak_sayisi; ++$i) { $basamak[$i] = implode(array_reverse(str_split($basamak[$i]))); if(strlen($basamak[$i]) == 1) $basamak[$i] = '00' . $basamak[$i]; elseif(strlen($basamak[$i]) == 2) $basamak[$i] = '0' . $basamak[$i]; } $yenisayi = array(); foreach($basamak as $k => $b) { if($b[0] > 0) $yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0]; if($b[1] > 0) $yenisayi[] = $o['onluk'][$b[1]-1]; if($b[2] > 0) $yenisayi[] = $o['birlik'][$b[2]-1]; if($basamak_sayisi > 1) $yenisayi[] = $o['basamak'][$basamak_sayisi-1]; --$basamak_sayisi; } return implode(' ', $yenisayi); } echo yaziylasayi('10001000005');
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/D9Djk
function name:  (null)
number of ops:  5
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   57     0  E >   INIT_FCALL                                               'yaziylasayi'
          1        SEND_VAL                                                 '10001000005'
          2        DO_FCALL                                      0  $0      
          3        ECHO                                                     $0
          4      > RETURN                                                   1

Function yaziylasayi:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 54
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 24
Branch analysis from position: 56
2 jumps found. (Code = 77) Position 1 = 58, Position 2 = 106
Branch analysis from position: 58
2 jumps found. (Code = 78) Position 1 = 59, Position 2 = 106
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 79
Branch analysis from position: 63
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 73
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 74
Branch analysis from position: 74
2 jumps found. (Code = 43) Position 1 = 82, Position 2 = 88
Branch analysis from position: 82
2 jumps found. (Code = 43) Position 1 = 91, Position 2 = 97
Branch analysis from position: 91
2 jumps found. (Code = 43) Position 1 = 99, Position 2 = 104
Branch analysis from position: 99
1 jumps found. (Code = 42) Position 1 = 58
Branch analysis from position: 58
Branch analysis from position: 104
Branch analysis from position: 97
Branch analysis from position: 88
Branch analysis from position: 73
2 jumps found. (Code = 43) Position 1 = 82, Position 2 = 88
Branch analysis from position: 82
Branch analysis from position: 88
Branch analysis from position: 79
Branch analysis from position: 106
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 106
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 45
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 24
Branch analysis from position: 56
Branch analysis from position: 24
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 53
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 24
Branch analysis from position: 56
Branch analysis from position: 24
Branch analysis from position: 53
filename:       /in/D9Djk
function name:  yaziylasayi
number of ops:  113
compiled vars:  !0 = $sayi, !1 = $o, !2 = $basamak, !3 = $basamak_sayisi, !4 = $i, !5 = $yenisayi, !6 = $b, !7 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
    3     1        ASSIGN                                                   !1, <array>
   10     2        INIT_FCALL                                               'array_reverse'
          3        INIT_FCALL                                               'str_split'
          4        INIT_FCALL                                               'implode'
          5        SEND_VAL                                                 ''
          6        INIT_FCALL                                               'array_reverse'
          7        INIT_FCALL                                               'str_split'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $9      
         10        SEND_VAR                                                 $9
         11        DO_ICALL                                         $10     
         12        SEND_VAR                                                 $10
         13        DO_ICALL                                         $11     
         14        SEND_VAR                                                 $11
         15        SEND_VAL                                                 3
         16        DO_ICALL                                         $12     
         17        SEND_VAR                                                 $12
         18        DO_ICALL                                         $13     
         19        ASSIGN                                                   !2, $13
   13    20        COUNT                                            ~15     !2
         21        ASSIGN                                                   !3, ~15
   16    22        ASSIGN                                                   !4, 0
         23      > JMP                                                      ->54
   18    24    >   INIT_FCALL                                               'implode'
         25        INIT_FCALL                                               'array_reverse'
         26        INIT_FCALL                                               'str_split'
         27        FETCH_DIM_R                                      ~19     !2, !4
         28        SEND_VAL                                                 ~19
         29        DO_ICALL                                         $20     
         30        SEND_VAR                                                 $20
         31        DO_ICALL                                         $21     
         32        SEND_VAR                                                 $21
         33        DO_ICALL                                         $22     
         34        ASSIGN_DIM                                               !2, !4
         35        OP_DATA                                                  $22
   21    36        FETCH_DIM_R                                      ~23     !2, !4
         37        STRLEN                                           ~24     ~23
         38        IS_EQUAL                                                 ~24, 1
         39      > JMPZ                                                     ~25, ->45
   22    40    >   FETCH_DIM_R                                      ~27     !2, !4
         41        CONCAT                                           ~28     '00', ~27
         42        ASSIGN_DIM                                               !2, !4
         43        OP_DATA                                                  ~28
         44      > JMP                                                      ->53
   23    45    >   FETCH_DIM_R                                      ~29     !2, !4
         46        STRLEN                                           ~30     ~29
         47        IS_EQUAL                                                 ~30, 2
         48      > JMPZ                                                     ~31, ->53
   24    49    >   FETCH_DIM_R                                      ~33     !2, !4
         50        CONCAT                                           ~34     '0', ~33
         51        ASSIGN_DIM                                               !2, !4
         52        OP_DATA                                                  ~34
   16    53    >   PRE_INC                                                  !4
         54    >   IS_SMALLER                                               !4, !3
         55      > JMPNZ                                                    ~36, ->24
   27    56    >   ASSIGN                                                   !5, <array>
   30    57      > FE_RESET_R                                       $38     !2, ->106
         58    > > FE_FETCH_R                                       ~39     $38, !6, ->106
         59    >   ASSIGN                                                   !7, ~39
   32    60        FETCH_DIM_R                                      ~41     !6, 0
         61        IS_SMALLER                                               0, ~41
         62      > JMPZ                                                     ~42, ->79
   34    63    >   FETCH_DIM_R                                      ~44     !6, 0
         64        IS_SMALLER                                               1, ~44
         65      > JMPZ                                                     ~45, ->73
         66    >   FETCH_DIM_R                                      ~47     !6, 0
         67        SUB                                              ~48     ~47, 1
         68        FETCH_DIM_R                                      ~46     !1, 'birlik'
         69        FETCH_DIM_R                                      ~49     ~46, ~48
         70        CONCAT                                           ~50     ~49, '+'
         71        QM_ASSIGN                                        ~51     ~50
         72      > JMP                                                      ->74
         73    >   QM_ASSIGN                                        ~51     ''
         74    >   FETCH_DIM_R                                      ~52     !1, 'basamak'
         75        FETCH_DIM_R                                      ~53     ~52, 0
         76        CONCAT                                           ~54     ~51, ~53
         77        ASSIGN_DIM                                               !5
         78        OP_DATA                                                  ~54
   37    79    >   FETCH_DIM_R                                      ~55     !6, 1
         80        IS_SMALLER                                               0, ~55
         81      > JMPZ                                                     ~56, ->88
   39    82    >   FETCH_DIM_R                                      ~59     !6, 1
         83        SUB                                              ~60     ~59, 1
         84        FETCH_DIM_R                                      ~58     !1, 'onluk'
         85        FETCH_DIM_R                                      ~61     ~58, ~60
         86        ASSIGN_DIM                                               !5
         87        OP_DATA                                                  ~61
   42    88    >   FETCH_DIM_R                                      ~62     !6, 2
         89        IS_SMALLER                                               0, ~62
         90      > JMPZ                                                     ~63, ->97
   44    91    >   FETCH_DIM_R                                      ~66     !6, 2
         92        SUB                                              ~67     ~66, 1
         93        FETCH_DIM_R                                      ~65     !1, 'birlik'
         94        FETCH_DIM_R                                      ~68     ~65, ~67
         95        ASSIGN_DIM                                               !5
         96        OP_DATA                                                  ~68
   47    97    >   IS_SMALLER                                               1, !3
         98      > JMPZ                                                     ~69, ->104
   48    99    >   SUB                                              ~72     !3, 1
        100        FETCH_DIM_R                                      ~71     !1, 'basamak'
        101        FETCH_DIM_R                                      ~73     ~71, ~72
        102        ASSIGN_DIM                                               !5
        103        OP_DATA                                                  ~73
   51   104    >   PRE_DEC                                                  !3
   30   105      > JMP                                                      ->58
        106    >   FE_FREE                                                  $38
   54   107        INIT_FCALL                                               'implode'
        108        SEND_VAL                                                 '+'
        109        SEND_VAR                                                 !5
        110        DO_ICALL                                         $75     
        111      > RETURN                                                   $75
   55   112*     > RETURN                                                   null

End of function yaziylasayi

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.87 ms | 1415 KiB | 20 Q