3v4l.org

run code in 500+ PHP versions simultaneously
<?php $lignes = isset($_GET['lignes']) ? $_GET['lignes'] : ''; $colonnes = isset($_GET['colonnes']) ? $_GET['colonnes'] : ''; $couleur = isset($_GET['couleur']) ? $_GET['couleur'] : '#000000'; function entierPositif($v) { return $v !== '' && is_numeric($v) && $v == (int)$v && $v > 0; } ?> <form method="get" action=""> <b>Nombre de lignes (entier):</b> <input type="text" name="lignes" value="<?php echo htmlspecialchars($lignes); ?>"><br> <b>Nombre de colonnes (entier):</b> <input type="text" name="colonnes" value="<?php echo htmlspecialchars($colonnes); ?>"><br> Couleur de fond: <input type="color" name="couleur" value="<?php echo htmlspecialchars($couleur); ?>"><br> <input type="submit" value="Afficher tableau"> </form> <?php if (entierPositif($lignes) && entierPositif($colonnes)) { $l = (int)$lignes; $c = (int)$colonnes; echo "<p>Tableau de $l lignes et $c colonnes:</p>"; echo '<table border="1" cellspacing="0" style="background-color:' . htmlspecialchars($couleur) . '">'; for ($i = 0; $i < $l; $i++) { echo '<tr>'; for ($j = 0; $j < $c; $j++) { echo '<td>-</td>'; } echo '</tr>'; } echo '</table>'; } else { echo '<p>Nombre de lignes ou de colonnes pas entiers ou vide.</p>'; } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 16
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 47, Position 2 = 51
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 83
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
2 jumps found. (Code = 44) Position 1 = 81, Position 2 = 70
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 70
1 jumps found. (Code = 42) Position 1 = 75
Branch analysis from position: 75
2 jumps found. (Code = 44) Position 1 = 77, Position 2 = 73
Branch analysis from position: 77
2 jumps found. (Code = 44) Position 1 = 81, Position 2 = 70
Branch analysis from position: 81
Branch analysis from position: 70
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 77, Position 2 = 73
Branch analysis from position: 77
Branch analysis from position: 73
Branch analysis from position: 83
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 51
Branch analysis from position: 25
2 jumps found. (Code = 46) Position 1 = 47, Position 2 = 51
Branch analysis from position: 47
Branch analysis from position: 51
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
Branch analysis from position: 25
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 16
Branch analysis from position: 12
Branch analysis from position: 16
filename:       /in/Q2DtJ
function name:  (null)
number of ops:  85
compiled vars:  !0 = $lignes, !1 = $colonnes, !2 = $couleur, !3 = $l, !4 = $c, !5 = $i, !6 = $j
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   FETCH_IS                                             ~7      '_GET'
          1        ISSET_ISEMPTY_DIM_OBJ                             0          ~7, 'lignes'
          2      > JMPZ                                                         ~8, ->7
          3    >   FETCH_R                          global              ~9      '_GET'
          4        FETCH_DIM_R                                          ~10     ~9, 'lignes'
          5        QM_ASSIGN                                            ~11     ~10
          6      > JMP                                                          ->8
          7    >   QM_ASSIGN                                            ~11     ''
          8    >   ASSIGN                                                       !0, ~11
    3     9        FETCH_IS                                             ~13     '_GET'
         10        ISSET_ISEMPTY_DIM_OBJ                             0          ~13, 'colonnes'
         11      > JMPZ                                                         ~14, ->16
         12    >   FETCH_R                          global              ~15     '_GET'
         13        FETCH_DIM_R                                          ~16     ~15, 'colonnes'
         14        QM_ASSIGN                                            ~17     ~16
         15      > JMP                                                          ->17
         16    >   QM_ASSIGN                                            ~17     ''
         17    >   ASSIGN                                                       !1, ~17
    4    18        FETCH_IS                                             ~19     '_GET'
         19        ISSET_ISEMPTY_DIM_OBJ                             0          ~19, 'couleur'
         20      > JMPZ                                                         ~20, ->25
         21    >   FETCH_R                          global              ~21     '_GET'
         22        FETCH_DIM_R                                          ~22     ~21, 'couleur'
         23        QM_ASSIGN                                            ~23     ~22
         24      > JMP                                                          ->26
         25    >   QM_ASSIGN                                            ~23     '%23000000'
         26    >   ASSIGN                                                       !2, ~23
   10    27        ECHO                                                         '%09%3Cform+method%3D%22get%22+action%3D%22%22%3E%0A%09%09%3Cb%3ENombre+de+lignes+%28entier%29%3A%3C%2Fb%3E%0A%09%09%3Cinput+type%3D%22text%22+name%3D%22lignes%22+value%3D%22'
   12    28        INIT_FCALL                                                   'htmlspecialchars'
         29        SEND_VAR                                                     !0
         30        DO_ICALL                                             $25     
         31        ECHO                                                         $25
         32        ECHO                                                         '%22%3E%3Cbr%3E%0A%09%09%3Cb%3ENombre+de+colonnes+%28entier%29%3A%3C%2Fb%3E%0A%09%09%3Cinput+type%3D%22text%22+name%3D%22colonnes%22+value%3D%22'
   14    33        INIT_FCALL                                                   'htmlspecialchars'
         34        SEND_VAR                                                     !1
         35        DO_ICALL                                             $26     
         36        ECHO                                                         $26
         37        ECHO                                                         '%22%3E%3Cbr%3E%0A%09%09Couleur+de+fond%3A%0A%09%09%3Cinput+type%3D%22color%22+name%3D%22couleur%22+value%3D%22'
   16    38        INIT_FCALL                                                   'htmlspecialchars'
         39        SEND_VAR                                                     !2
         40        DO_ICALL                                             $27     
         41        ECHO                                                         $27
         42        ECHO                                                         '%22%3E%3Cbr%3E%0A%09%09%3Cinput+type%3D%22submit%22+value%3D%22Afficher+tableau%22%3E%0A%09%3C%2Fform%3E%0A%09'
   20    43        INIT_FCALL                                                   'entierpositif'
         44        SEND_VAR                                                     !0
         45        DO_FCALL                                          0  $28     
         46      > JMPZ_EX                                              ~29     $28, ->51
         47    >   INIT_FCALL                                                   'entierpositif'
         48        SEND_VAR                                                     !1
         49        DO_FCALL                                          0  $30     
         50        BOOL                                                 ~29     $30
         51    > > JMPZ                                                         ~29, ->83
   21    52    >   CAST                                              4  ~31     !0
         53        ASSIGN                                                       !3, ~31
   22    54        CAST                                              4  ~33     !1
         55        ASSIGN                                                       !4, ~33
   23    56        ROPE_INIT                                         5  ~36     '%3Cp%3ETableau+de+'
         57        ROPE_ADD                                          1  ~36     ~36, !3
         58        ROPE_ADD                                          2  ~36     ~36, '+lignes+et+'
         59        ROPE_ADD                                          3  ~36     ~36, !4
         60        ROPE_END                                          4  ~35     ~36, '+colonnes%3A%3C%2Fp%3E'
         61        ECHO                                                         ~35
   24    62        INIT_FCALL                                                   'htmlspecialchars'
         63        SEND_VAR                                                     !2
         64        DO_ICALL                                             $39     
         65        CONCAT                                               ~40     '%3Ctable+border%3D%221%22+cellspacing%3D%220%22+style%3D%22background-color%3A', $39
         66        CONCAT                                               ~41     ~40, '%22%3E'
         67        ECHO                                                         ~41
   25    68        ASSIGN                                                       !5, 0
         69      > JMP                                                          ->79
   26    70    >   ECHO                                                         '%3Ctr%3E'
   27    71        ASSIGN                                                       !6, 0
         72      > JMP                                                          ->75
   28    73    >   ECHO                                                         '%3Ctd%3E-%3C%2Ftd%3E'
   27    74        PRE_INC                                                      !6
         75    >   IS_SMALLER                                                   !6, !4
         76      > JMPNZ                                                        ~45, ->73
   30    77    >   ECHO                                                         '%3C%2Ftr%3E'
   25    78        PRE_INC                                                      !5
         79    >   IS_SMALLER                                                   !5, !3
         80      > JMPNZ                                                        ~47, ->70
   32    81    >   ECHO                                                         '%3C%2Ftable%3E'
   20    82      > JMP                                                          ->84
   34    83    >   ECHO                                                         '%3Cp%3ENombre+de+lignes+ou+de+colonnes+pas+entiers+ou+vide.%3C%2Fp%3E'
   36    84    > > RETURN                                                       1

Function entierpositif:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 3, Position 2 = 5
Branch analysis from position: 3
2 jumps found. (Code = 46) Position 1 = 6, Position 2 = 9
Branch analysis from position: 6
2 jumps found. (Code = 46) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
Branch analysis from position: 9
Branch analysis from position: 5
filename:       /in/Q2DtJ
function name:  entierPositif
number of ops:  14
compiled vars:  !0 = $v
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    6     0  E >   RECV                                                 !0      
    7     1        IS_NOT_IDENTICAL                                     ~1      !0, ''
          2      > JMPZ_EX                                              ~1      ~1, ->5
          3    >   FRAMELESS_ICALL_1                is_numeric          ~2      !0
          4        BOOL                                                 ~1      ~2
          5    > > JMPZ_EX                                              ~1      ~1, ->9
          6    >   CAST                                              4  ~3      !0
          7        IS_EQUAL                                             ~4      !0, ~3
          8        BOOL                                                 ~1      ~4
          9    > > JMPZ_EX                                              ~1      ~1, ->12
         10    >   IS_SMALLER                                           ~5      0, !0
         11        BOOL                                                 ~1      ~5
         12    > > RETURN                                                       ~1
    8    13*     > RETURN                                                       null

End of function entierpositif

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
132.33 ms | 494 KiB | 10 Q