3v4l.org

run code in 300+ PHP versions simultaneously
<?php $shuZhu=array(array("经理1","经理2"),array("主管1","主管2","经理3"),array("组长","老大")); $fontPosition='simhei.ttf'; class process { var $arr;//流程确定的数组 var $promoters;//流程发起人 var $black;//所画节点颜色 var $imgWidth;//图片宽度 var $imgHeight;//图片长度 var $font;//字体存放位置 var $fontSize; function __construct($shuZhu,$fontP,$width=400,$height=300,$fontSize=10,$promoters="") { $this->arr=$shuZhu; $this->promoters=$promoters; $this->font = $fontP; $this->imgWidth=$width; $this->imgHeight=$height; $this->fontSize=$fontSize; } //point(x1,x2)是画图的起始点,w是横线的长,h是竖线的长,r是节点圆点的半径 function show( $x,$y,$w,$h,$r) { //创建画布 $image=imagecreatetruecolor($this->imgWidth,$this->imgHeight); //设置图像中所需的颜色 $gray=imagecolorallocate($image,0xc0,0xC0,0xC0); $red=imagecolorallocate($image,0xFF,0x00,0x00); $black=imagecolorallocate($image,0x00,0x00,0x00); imagefill($image,0,0,$gray); imageline($image,$x,$y,$x+$w,$y,$red);//画第一条横线线 imagefilledellipse($image, $x,$y, $r,$r, $black);//画出发起人的节点 imagettftext($image,$this->fontSize, 0, $x-$w/4,$y+$w/2, $black, $this->font,$this->promoters); for($i=0;$i<count($this->arr);$i++) { $num=count($this->arr[$i]);//该级接点上有多少人 if($num>1)//节点上的人数多于一人,则先画一条竖线 { imageline($image,$x+$w*($i+1),$y-$h/2,$x+$w*($i+1),$y+$h/2,$red); } for($j=0;$j<count($this->arr[$i]);$j++) { if($num>1) { $m=$h/($num-1);//一个节点上有count[$arr[i]]个人,则$m代表截取竖线的长度 imageline($image,$x+$w*($i+1),$y-$h/2+$m*$j,$x+$w*($i+2),$y,$red); imagefilledellipse($image, $x+$w*($i+1),$y-$h/2+$m*$j, $r,$r, $black); //imagestring($image,2,$x+$w*($i+1)-10,$y-$h/2+$m*$j+5,$this->arr[$i][$j],$black);//直接输出接点上的人员名称 imagettftext($image, $this->fontSize, 0, $x+$w*($i+1)-$w/4,$y-$h/2+$m*$j+$w/2, $black, $this->font, $this->arr[$i][$j]); } else { imageline($image,$x+$w*($i+1),$y,$x+$w*($i+2),$y,$red);//画一条横线 imagefilledellipse($image, $x+$w*($i+1),$y, $r,$r, $black); //imagestring($image,2,$x+$w*($i+1),$y,$this->arr[$i][0],$black);//直接输出接点上的人员名称 imagettftext($image,$this->fontSize, 0, $x+$w*($i+1)-$w/4,$y+$w/2, $black, $this->font,$this->arr[$i][0]); } } } header('Content-type:image/png'); imagepng($image); imagedestroy($image); } } $img=new process($shuZhu,$fontPosition,600,300,10,"董事长"); $img->show(10,150,50,200,8); ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fjqTq
function name:  (null)
number of ops:  19
compiled vars:  !0 = $shuZhu, !1 = $fontPosition, !2 = $img
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
    3     1        ASSIGN                                                   !1, 'simhei.ttf'
   72     2        NEW                                              $5      'process'
          3        SEND_VAR_EX                                              !0
          4        SEND_VAR_EX                                              !1
          5        SEND_VAL_EX                                              600
          6        SEND_VAL_EX                                              300
          7        SEND_VAL_EX                                              10
          8        SEND_VAL_EX                                              '%E8%91%A3%E4%BA%8B%E9%95%BF'
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $5
   73    11        INIT_METHOD_CALL                                         !2, 'show'
         12        SEND_VAL_EX                                              10
         13        SEND_VAL_EX                                              150
         14        SEND_VAL_EX                                              50
         15        SEND_VAL_EX                                              200
         16        SEND_VAL_EX                                              8
         17        DO_FCALL                                      0          
   74    18      > RETURN                                                   1

Class process:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fjqTq
function name:  __construct
number of ops:  19
compiled vars:  !0 = $shuZhu, !1 = $fontP, !2 = $width, !3 = $height, !4 = $fontSize, !5 = $promoters
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      400
          3        RECV_INIT                                        !3      300
          4        RECV_INIT                                        !4      10
          5        RECV_INIT                                        !5      ''
   16     6        ASSIGN_OBJ                                               'arr'
          7        OP_DATA                                                  !0
   17     8        ASSIGN_OBJ                                               'promoters'
          9        OP_DATA                                                  !5
   18    10        ASSIGN_OBJ                                               'font'
         11        OP_DATA                                                  !1
   19    12        ASSIGN_OBJ                                               'imgWidth'
         13        OP_DATA                                                  !2
   20    14        ASSIGN_OBJ                                               'imgHeight'
         15        OP_DATA                                                  !3
   21    16        ASSIGN_OBJ                                               'fontSize'
         17        OP_DATA                                                  !4
   22    18      > RETURN                                                   null

End of function __construct

Function show:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 231
Branch analysis from position: 231
2 jumps found. (Code = 44) Position 1 = 235, Position 2 = 80
Branch analysis from position: 235
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 80
2 jumps found. (Code = 43) Position 1 = 86, Position 2 = 104
Branch analysis from position: 86
1 jumps found. (Code = 42) Position 1 = 225
Branch analysis from position: 225
2 jumps found. (Code = 44) Position 1 = 230, Position 2 = 106
Branch analysis from position: 230
2 jumps found. (Code = 44) Position 1 = 235, Position 2 = 80
Branch analysis from position: 235
Branch analysis from position: 80
Branch analysis from position: 106
2 jumps found. (Code = 43) Position 1 = 108, Position 2 = 174
Branch analysis from position: 108
1 jumps found. (Code = 42) Position 1 = 224
Branch analysis from position: 224
2 jumps found. (Code = 44) Position 1 = 230, Position 2 = 106
Branch analysis from position: 230
Branch analysis from position: 106
Branch analysis from position: 174
2 jumps found. (Code = 44) Position 1 = 230, Position 2 = 106
Branch analysis from position: 230
Branch analysis from position: 106
Branch analysis from position: 104
filename:       /in/fjqTq
function name:  show
number of ops:  245
compiled vars:  !0 = $x, !1 = $y, !2 = $w, !3 = $h, !4 = $r, !5 = $image, !6 = $gray, !7 = $red, !8 = $black, !9 = $i, !10 = $num, !11 = $j, !12 = $m
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   24     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
          4        RECV                                             !4      
   27     5        INIT_FCALL_BY_NAME                                       'imagecreatetruecolor'
          6        CHECK_FUNC_ARG                                           
          7        FETCH_OBJ_FUNC_ARG                               $13     'imgWidth'
          8        SEND_FUNC_ARG                                            $13
          9        CHECK_FUNC_ARG                                           
         10        FETCH_OBJ_FUNC_ARG                               $14     'imgHeight'
         11        SEND_FUNC_ARG                                            $14
         12        DO_FCALL                                      0  $15     
         13        ASSIGN                                                   !5, $15
   29    14        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         15        SEND_VAR_EX                                              !5
         16        SEND_VAL_EX                                              192
         17        SEND_VAL_EX                                              192
         18        SEND_VAL_EX                                              192
         19        DO_FCALL                                      0  $17     
         20        ASSIGN                                                   !6, $17
   30    21        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         22        SEND_VAR_EX                                              !5
         23        SEND_VAL_EX                                              255
         24        SEND_VAL_EX                                              0
         25        SEND_VAL_EX                                              0
         26        DO_FCALL                                      0  $19     
         27        ASSIGN                                                   !7, $19
   31    28        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         29        SEND_VAR_EX                                              !5
         30        SEND_VAL_EX                                              0
         31        SEND_VAL_EX                                              0
         32        SEND_VAL_EX                                              0
         33        DO_FCALL                                      0  $21     
         34        ASSIGN                                                   !8, $21
   32    35        INIT_FCALL_BY_NAME                                       'imagefill'
         36        SEND_VAR_EX                                              !5
         37        SEND_VAL_EX                                              0
         38        SEND_VAL_EX                                              0
         39        SEND_VAR_EX                                              !6
         40        DO_FCALL                                      0          
   35    41        INIT_FCALL_BY_NAME                                       'imageline'
         42        SEND_VAR_EX                                              !5
         43        SEND_VAR_EX                                              !0
         44        SEND_VAR_EX                                              !1
         45        ADD                                              ~24     !0, !2
         46        SEND_VAL_EX                                              ~24
         47        SEND_VAR_EX                                              !1
         48        SEND_VAR_EX                                              !7
         49        DO_FCALL                                      0          
   36    50        INIT_FCALL_BY_NAME                                       'imagefilledellipse'
         51        SEND_VAR_EX                                              !5
         52        SEND_VAR_EX                                              !0
         53        SEND_VAR_EX                                              !1
         54        SEND_VAR_EX                                              !4
         55        SEND_VAR_EX                                              !4
         56        SEND_VAR_EX                                              !8
         57        DO_FCALL                                      0          
   37    58        INIT_FCALL_BY_NAME                                       'imagettftext'
         59        SEND_VAR_EX                                              !5
         60        CHECK_FUNC_ARG                                           
         61        FETCH_OBJ_FUNC_ARG                               $27     'fontSize'
         62        SEND_FUNC_ARG                                            $27
         63        SEND_VAL_EX                                              0
         64        DIV                                              ~28     !2, 4
         65        SUB                                              ~29     !0, ~28
         66        SEND_VAL_EX                                              ~29
         67        DIV                                              ~30     !2, 2
         68        ADD                                              ~31     !1, ~30
         69        SEND_VAL_EX                                              ~31
         70        SEND_VAR_EX                                              !8
         71        CHECK_FUNC_ARG                                           
         72        FETCH_OBJ_FUNC_ARG                               $32     'font'
         73        SEND_FUNC_ARG                                            $32
         74        CHECK_FUNC_ARG                                           
         75        FETCH_OBJ_FUNC_ARG                               $33     'promoters'
         76        SEND_FUNC_ARG                                            $33
         77        DO_FCALL                                      0          
   39    78        ASSIGN                                                   !9, 0
         79      > JMP                                                      ->231
   41    80    >   FETCH_OBJ_R                                      ~36     'arr'
         81        FETCH_DIM_R                                      ~37     ~36, !9
         82        COUNT                                            ~38     ~37
         83        ASSIGN                                                   !10, ~38
   42    84        IS_SMALLER                                               1, !10
         85      > JMPZ                                                     ~40, ->104
   44    86    >   INIT_FCALL_BY_NAME                                       'imageline'
         87        SEND_VAR_EX                                              !5
         88        ADD                                              ~41     !9, 1
         89        MUL                                              ~42     !2, ~41
         90        ADD                                              ~43     !0, ~42
         91        SEND_VAL_EX                                              ~43
         92        DIV                                              ~44     !3, 2
         93        SUB                                              ~45     !1, ~44
         94        SEND_VAL_EX                                              ~45
         95        ADD                                              ~46     !9, 1
         96        MUL                                              ~47     !2, ~46
         97        ADD                                              ~48     !0, ~47
         98        SEND_VAL_EX                                              ~48
         99        DIV                                              ~49     !3, 2
        100        ADD                                              ~50     !1, ~49
        101        SEND_VAL_EX                                              ~50
        102        SEND_VAR_EX                                              !7
        103        DO_FCALL                                      0          
   46   104    >   ASSIGN                                                   !11, 0
        105      > JMP                                                      ->225
   48   106    >   IS_SMALLER                                               1, !10
        107      > JMPZ                                                     ~53, ->174
   50   108    >   SUB                                              ~54     !10, 1
        109        DIV                                              ~55     !3, ~54
        110        ASSIGN                                                   !12, ~55
   51   111        INIT_FCALL_BY_NAME                                       'imageline'
        112        SEND_VAR_EX                                              !5
        113        ADD                                              ~57     !9, 1
        114        MUL                                              ~58     !2, ~57
        115        ADD                                              ~59     !0, ~58
        116        SEND_VAL_EX                                              ~59
        117        DIV                                              ~60     !3, 2
        118        SUB                                              ~61     !1, ~60
        119        MUL                                              ~62     !12, !11
        120        ADD                                              ~63     ~61, ~62
        121        SEND_VAL_EX                                              ~63
        122        ADD                                              ~64     !9, 2
        123        MUL                                              ~65     !2, ~64
        124        ADD                                              ~66     !0, ~65
        125        SEND_VAL_EX                                              ~66
        126        SEND_VAR_EX                                              !1
        127        SEND_VAR_EX                                              !7
        128        DO_FCALL                                      0          
   52   129        INIT_FCALL_BY_NAME                                       'imagefilledellipse'
        130        SEND_VAR_EX                                              !5
        131        ADD                                              ~68     !9, 1
        132        MUL                                              ~69     !2, ~68
        133        ADD                                              ~70     !0, ~69
        134        SEND_VAL_EX                                              ~70
        135        DIV                                              ~71     !3, 2
        136        SUB                                              ~72     !1, ~71
        137        MUL                                              ~73     !12, !11
        138        ADD                                              ~74     ~72, ~73
        139        SEND_VAL_EX                                              ~74
        140        SEND_VAR_EX                                              !4
        141        SEND_VAR_EX                                              !4
        142        SEND_VAR_EX                                              !8
        143        DO_FCALL                                      0          
   54   144        INIT_FCALL_BY_NAME                                       'imagettftext'
        145        SEND_VAR_EX                                              !5
        146        CHECK_FUNC_ARG                                           
        147        FETCH_OBJ_FUNC_ARG                               $76     'fontSize'
        148        SEND_FUNC_ARG                                            $76
        149        SEND_VAL_EX                                              0
        150        ADD                                              ~77     !9, 1
        151        MUL                                              ~78     !2, ~77
        152        ADD                                              ~79     !0, ~78
        153        DIV                                              ~80     !2, 4
        154        SUB                                              ~81     ~79, ~80
        155        SEND_VAL_EX                                              ~81
        156        DIV                                              ~82     !3, 2
        157        SUB                                              ~83     !1, ~82
        158        MUL                                              ~84     !12, !11
        159        ADD                                              ~85     ~83, ~84
        160        DIV                                              ~86     !2, 2
        161        ADD                                              ~87     ~85, ~86
        162        SEND_VAL_EX                                              ~87
        163        SEND_VAR_EX                                              !8
        164        CHECK_FUNC_ARG                                           
        165        FETCH_OBJ_FUNC_ARG                               $88     'font'
        166        SEND_FUNC_ARG                                            $88
        167        CHECK_FUNC_ARG                                           
        168        FETCH_OBJ_FUNC_ARG                               $89     'arr'
        169        FETCH_DIM_FUNC_ARG                               $90     $89, !9
        170        FETCH_DIM_FUNC_ARG                               $91     $90, !11
        171        SEND_FUNC_ARG                                            $91
        172        DO_FCALL                                      0          
        173      > JMP                                                      ->224
   58   174    >   INIT_FCALL_BY_NAME                                       'imageline'
        175        SEND_VAR_EX                                              !5
        176        ADD                                              ~93     !9, 1
        177        MUL                                              ~94     !2, ~93
        178        ADD                                              ~95     !0, ~94
        179        SEND_VAL_EX                                              ~95
        180        SEND_VAR_EX                                              !1
        181        ADD                                              ~96     !9, 2
        182        MUL                                              ~97     !2, ~96
        183        ADD                                              ~98     !0, ~97
        184        SEND_VAL_EX                                              ~98
        185        SEND_VAR_EX                                              !1
        186        SEND_VAR_EX                                              !7
        187        DO_FCALL                                      0          
   59   188        INIT_FCALL_BY_NAME                                       'imagefilledellipse'
        189        SEND_VAR_EX                                              !5
        190        ADD                                              ~100    !9, 1
        191        MUL                                              ~101    !2, ~100
        192        ADD                                              ~102    !0, ~101
        193        SEND_VAL_EX                                              ~102
        194        SEND_VAR_EX                                              !1
        195        SEND_VAR_EX                                              !4
        196        SEND_VAR_EX                                              !4
        197        SEND_VAR_EX                                              !8
        198        DO_FCALL                                      0          
   61   199        INIT_FCALL_BY_NAME                                       'imagettftext'
        200        SEND_VAR_EX                                              !5
        201        CHECK_FUNC_ARG                                           
        202        FETCH_OBJ_FUNC_ARG                               $104    'fontSize'
        203        SEND_FUNC_ARG                                            $104
        204        SEND_VAL_EX                                              0
        205        ADD                                              ~105    !9, 1
        206        MUL                                              ~106    !2, ~105
        207        ADD                                              ~107    !0, ~106
        208        DIV                                              ~108    !2, 4
        209        SUB                                              ~109    ~107, ~108
        210        SEND_VAL_EX                                              ~109
        211        DIV                                              ~110    !2, 2
        212        ADD                                              ~111    !1, ~110
        213        SEND_VAL_EX                                              ~111
        214        SEND_VAR_EX                                              !8
        215        CHECK_FUNC_ARG                                           
        216        FETCH_OBJ_FUNC_ARG                               $112    'font'
        217        SEND_FUNC_ARG                                            $112
        218        CHECK_FUNC_ARG                                           
        219        FETCH_OBJ_FUNC_ARG                               $113    'arr'
        220        FETCH_DIM_FUNC_ARG                               $114    $113, !9
        221        FETCH_DIM_FUNC_ARG                               $115    $114, 0
        222        SEND_FUNC_ARG                                            $115
        223        DO_FCALL                                      0          
   46   224    >   PRE_INC                                                  !11
        225    >   FETCH_OBJ_R                                      ~118    'arr'
        226        FETCH_DIM_R                                      ~119    ~118, !9
        227        COUNT                                            ~120    ~119
        228        IS_SMALLER                                               !11, ~120
        229      > JMPNZ                                                    ~121, ->106
   39   230    >   PRE_INC                                                  !9
        231    >   FETCH_OBJ_R                                      ~123    'arr'
        232        COUNT                                            ~124    ~123
        233        IS_SMALLER                                               !9, ~124
        234      > JMPNZ                                                    ~125, ->80
   67   235    >   INIT_FCALL                                               'header'
        236        SEND_VAL                                                 'Content-type%3Aimage%2Fpng'
        237        DO_ICALL                                                 
   68   238        INIT_FCALL_BY_NAME                                       'imagepng'
        239        SEND_VAR_EX                                              !5
        240        DO_FCALL                                      0          
   69   241        INIT_FCALL_BY_NAME                                       'imagedestroy'
        242        SEND_VAR_EX                                              !5
        243        DO_FCALL                                      0          
   70   244      > RETURN                                                   null

End of function show

End of class process.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
176.53 ms | 1420 KiB | 15 Q