3v4l.org

run code in 300+ PHP versions simultaneously
<?php set_time_limit(5); $i = 6; // Количество итераций $xy = 1500; // Размер стороны картинки $img = imagecreatetruecolor($xy, $xy); $black = imagecolorallocate($img, 0, 0, 0); $white = imagecolorallocate($img, 255, 255, 255); $cycle = 0; drawCarpet(0, 0, $xy, $xy, $i); function drawCarpet($a, $b, $c, $d, $n) { global $img, $white, $cycle; $cycle++; if($n <= 0) return; $a1 = 2 * $a / 3 + $c / 3; $c1 = $a / 3 + 2 * $c / 3; $b1 = 2 * $b / 3 + $d / 3; $d1 = $b / 3 + 2 * $d / 3; imagefilledrectangle($img, $a1, $b1, $c1, $d1, $white); drawCarpet($a, $b, $a1, $b1, $n - 1); drawCarpet($a1, $b, $c1, $b1, $n - 1); drawCarpet($c1, $b, $c, $b1, $n - 1); drawCarpet($a, $b1, $a1, $d1, $n - 1); drawCarpet($c1, $b1, $c, $d1, $n - 1); drawCarpet($a, $d1, $a1, $d, $n - 1); drawCarpet($a1, $d1, $c1, $d, $n - 1); drawCarpet($c1, $d1, $c, $d, $n - 1); } imagefilledrectangle($img, 0, 0, (strlen($cycle) * 9) , 16, $white); imagestring($img,21,0,0,$cycle,$black); header('Content-Type: image/png'); imagepng($img);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/upITE
function name:  (null)
number of ops:  57
compiled vars:  !0 = $i, !1 = $xy, !2 = $img, !3 = $black, !4 = $white, !5 = $cycle
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'set_time_limit'
          1        SEND_VAL                                                 5
          2        DO_ICALL                                                 
    4     3        ASSIGN                                                   !0, 6
    5     4        ASSIGN                                                   !1, 1500
    7     5        INIT_FCALL_BY_NAME                                       'imagecreatetruecolor'
          6        SEND_VAR_EX                                              !1
          7        SEND_VAR_EX                                              !1
          8        DO_FCALL                                      0  $9      
          9        ASSIGN                                                   !2, $9
    9    10        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         11        SEND_VAR_EX                                              !2
         12        SEND_VAL_EX                                              0
         13        SEND_VAL_EX                                              0
         14        SEND_VAL_EX                                              0
         15        DO_FCALL                                      0  $11     
         16        ASSIGN                                                   !3, $11
   10    17        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         18        SEND_VAR_EX                                              !2
         19        SEND_VAL_EX                                              255
         20        SEND_VAL_EX                                              255
         21        SEND_VAL_EX                                              255
         22        DO_FCALL                                      0  $13     
         23        ASSIGN                                                   !4, $13
   12    24        ASSIGN                                                   !5, 0
   13    25        INIT_FCALL_BY_NAME                                       'drawCarpet'
         26        SEND_VAL_EX                                              0
         27        SEND_VAL_EX                                              0
         28        SEND_VAR_EX                                              !1
         29        SEND_VAR_EX                                              !1
         30        SEND_VAR_EX                                              !0
         31        DO_FCALL                                      0          
   39    32        INIT_FCALL_BY_NAME                                       'imagefilledrectangle'
         33        SEND_VAR_EX                                              !2
         34        SEND_VAL_EX                                              0
         35        SEND_VAL_EX                                              0
         36        STRLEN                                           ~17     !5
         37        MUL                                              ~18     ~17, 9
         38        SEND_VAL_EX                                              ~18
         39        SEND_VAL_EX                                              16
         40        SEND_VAR_EX                                              !4
         41        DO_FCALL                                      0          
   40    42        INIT_FCALL_BY_NAME                                       'imagestring'
         43        SEND_VAR_EX                                              !2
         44        SEND_VAL_EX                                              21
         45        SEND_VAL_EX                                              0
         46        SEND_VAL_EX                                              0
         47        SEND_VAR_EX                                              !5
         48        SEND_VAR_EX                                              !3
         49        DO_FCALL                                      0          
   42    50        INIT_FCALL                                               'header'
         51        SEND_VAL                                                 'Content-Type%3A+image%2Fpng'
         52        DO_ICALL                                                 
   43    53        INIT_FCALL_BY_NAME                                       'imagepng'
         54        SEND_VAR_EX                                              !2
         55        DO_FCALL                                      0          
         56      > RETURN                                                   1

Function drawcarpet:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/upITE
function name:  drawCarpet
number of ops:  105
compiled vars:  !0 = $a, !1 = $b, !2 = $c, !3 = $d, !4 = $n, !5 = $img, !6 = $white, !7 = $cycle, !8 = $a1, !9 = $c1, !10 = $b1, !11 = $d1
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
          4        RECV                                             !4      
   15     5        BIND_GLOBAL                                              !5, 'img'
          6        BIND_GLOBAL                                              !6, 'white'
          7        BIND_GLOBAL                                              !7, 'cycle'
   16     8        PRE_INC                                                  !7
   18     9        IS_SMALLER_OR_EQUAL                                      !4, 0
         10      > JMPZ                                                     ~13, ->12
         11    > > RETURN                                                   null
   20    12    >   MUL                                              ~14     !0, 2
         13        DIV                                              ~15     ~14, 3
         14        DIV                                              ~16     !2, 3
         15        ADD                                              ~17     ~15, ~16
         16        ASSIGN                                                   !8, ~17
   21    17        DIV                                              ~19     !0, 3
         18        MUL                                              ~20     !2, 2
         19        DIV                                              ~21     ~20, 3
         20        ADD                                              ~22     ~19, ~21
         21        ASSIGN                                                   !9, ~22
   22    22        MUL                                              ~24     !1, 2
         23        DIV                                              ~25     ~24, 3
         24        DIV                                              ~26     !3, 3
         25        ADD                                              ~27     ~25, ~26
         26        ASSIGN                                                   !10, ~27
   23    27        DIV                                              ~29     !1, 3
         28        MUL                                              ~30     !3, 2
         29        DIV                                              ~31     ~30, 3
         30        ADD                                              ~32     ~29, ~31
         31        ASSIGN                                                   !11, ~32
   25    32        INIT_FCALL_BY_NAME                                       'imagefilledrectangle'
         33        SEND_VAR_EX                                              !5
         34        SEND_VAR_EX                                              !8
         35        SEND_VAR_EX                                              !10
         36        SEND_VAR_EX                                              !9
         37        SEND_VAR_EX                                              !11
         38        SEND_VAR_EX                                              !6
         39        DO_FCALL                                      0          
   27    40        INIT_FCALL_BY_NAME                                       'drawCarpet'
         41        SEND_VAR_EX                                              !0
         42        SEND_VAR_EX                                              !1
         43        SEND_VAR_EX                                              !8
         44        SEND_VAR_EX                                              !10
         45        SUB                                              ~35     !4, 1
         46        SEND_VAL_EX                                              ~35
         47        DO_FCALL                                      0          
   28    48        INIT_FCALL_BY_NAME                                       'drawCarpet'
         49        SEND_VAR_EX                                              !8
         50        SEND_VAR_EX                                              !1
         51        SEND_VAR_EX                                              !9
         52        SEND_VAR_EX                                              !10
         53        SUB                                              ~37     !4, 1
         54        SEND_VAL_EX                                              ~37
         55        DO_FCALL                                      0          
   29    56        INIT_FCALL_BY_NAME                                       'drawCarpet'
         57        SEND_VAR_EX                                              !9
         58        SEND_VAR_EX                                              !1
         59        SEND_VAR_EX                                              !2
         60        SEND_VAR_EX                                              !10
         61        SUB                                              ~39     !4, 1
         62        SEND_VAL_EX                                              ~39
         63        DO_FCALL                                      0          
   31    64        INIT_FCALL_BY_NAME                                       'drawCarpet'
         65        SEND_VAR_EX                                              !0
         66        SEND_VAR_EX                                              !10
         67        SEND_VAR_EX                                              !8
         68        SEND_VAR_EX                                              !11
         69        SUB                                              ~41     !4, 1
         70        SEND_VAL_EX                                              ~41
         71        DO_FCALL                                      0          
   32    72        INIT_FCALL_BY_NAME                                       'drawCarpet'
         73        SEND_VAR_EX                                              !9
         74        SEND_VAR_EX                                              !10
         75        SEND_VAR_EX                                              !2
         76        SEND_VAR_EX                                              !11
         77        SUB                                              ~43     !4, 1
         78        SEND_VAL_EX                                              ~43
         79        DO_FCALL                                      0          
   34    80        INIT_FCALL_BY_NAME                                       'drawCarpet'
         81        SEND_VAR_EX                                              !0
         82        SEND_VAR_EX                                              !11
         83        SEND_VAR_EX                                              !8
         84        SEND_VAR_EX                                              !3
         85        SUB                                              ~45     !4, 1
         86        SEND_VAL_EX                                              ~45
         87        DO_FCALL                                      0          
   35    88        INIT_FCALL_BY_NAME                                       'drawCarpet'
         89        SEND_VAR_EX                                              !8
         90        SEND_VAR_EX                                              !11
         91        SEND_VAR_EX                                              !9
         92        SEND_VAR_EX                                              !3
         93        SUB                                              ~47     !4, 1
         94        SEND_VAL_EX                                              ~47
         95        DO_FCALL                                      0          
   36    96        INIT_FCALL_BY_NAME                                       'drawCarpet'
         97        SEND_VAR_EX                                              !9
         98        SEND_VAR_EX                                              !11
         99        SEND_VAR_EX                                              !2
        100        SEND_VAR_EX                                              !3
        101        SUB                                              ~49     !4, 1
        102        SEND_VAL_EX                                              ~49
        103        DO_FCALL                                      0          
   37   104      > RETURN                                                   null

End of function drawcarpet

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
174.9 ms | 1408 KiB | 17 Q