3v4l.org

run code in 500+ PHP versions simultaneously
<?php function getPageNumber($total) { $page = (empty($_GET['tab']) ? 1 : (int) $_GET['tab']); if ($page <= 0) { //force a positive page value $page = 1; } $maximoVEP = 1; $total_pages = ceil($total/$maximoVEP); if ($page > $total_pages) { //limit requested page to the maximum number of pages $page = $total_pages; } return $page; } $total = 2; //results from COUNT query - 2 always assummed for this example $_GET['tab'] = 'not a number'; $page = getPageNumber($total); echo '$_GET[\'tab\'] = not a number: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = -1; $page = getPageNumber($total); echo '$_GET[\'tab\'] = -1: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = -2; $page = getPageNumber($total); echo '$_GET[\'tab\'] = -2: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = -0; $page = getPageNumber($total); echo '$_GET[\'tab\'] = -0: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = 0; $page = getPageNumber($total); echo '$_GET[\'tab\'] = 0: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = 1; $page = getPageNumber($total); echo '$_GET[\'tab\'] = 1: ' . $page; //1 echo \PHP_EOL; $_GET['tab'] = 2; $page = getPageNumber($total); echo '$_GET[\'tab\'] = 2: ' . $page; //2 echo \PHP_EOL; $_GET['tab'] = 3; $page = getPageNumber($total); echo '$_GET[\'tab\'] = 3: ' .$page; //2 echo \PHP_EOL; $_GET['tab'] = 4; $page = getPageNumber($total); echo '$_GET[\'tab\'] = 4: ' . $page; //2
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/91m8G
function name:  (null)
number of ops:  91
compiled vars:  !0 = $total, !1 = $page
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   20     0  E >   ASSIGN                                                       !0, 2
   22     1        FETCH_W                          global              $3      '_GET'
          2        ASSIGN_DIM                                                   $3, 'tab'
          3        OP_DATA                                                      'not+a+number'
   23     4        INIT_FCALL                                                   'getpagenumber'
          5        SEND_VAR                                                     !0
          6        DO_FCALL                                          0  $5      
          7        ASSIGN                                                       !1, $5
   24     8        CONCAT                                               ~7      '%24_GET%5B%27tab%27%5D+%3D+not+a+number%3A+', !1
          9        ECHO                                                         ~7
   26    10        ECHO                                                         '%0A'
   28    11        FETCH_W                          global              $8      '_GET'
         12        ASSIGN_DIM                                                   $8, 'tab'
         13        OP_DATA                                                      -1
   29    14        INIT_FCALL                                                   'getpagenumber'
         15        SEND_VAR                                                     !0
         16        DO_FCALL                                          0  $10     
         17        ASSIGN                                                       !1, $10
   30    18        CONCAT                                               ~12     '%24_GET%5B%27tab%27%5D+%3D+-1%3A+', !1
         19        ECHO                                                         ~12
   32    20        ECHO                                                         '%0A'
   34    21        FETCH_W                          global              $13     '_GET'
         22        ASSIGN_DIM                                                   $13, 'tab'
         23        OP_DATA                                                      -2
   35    24        INIT_FCALL                                                   'getpagenumber'
         25        SEND_VAR                                                     !0
         26        DO_FCALL                                          0  $15     
         27        ASSIGN                                                       !1, $15
   36    28        CONCAT                                               ~17     '%24_GET%5B%27tab%27%5D+%3D+-2%3A+', !1
         29        ECHO                                                         ~17
   38    30        ECHO                                                         '%0A'
   40    31        FETCH_W                          global              $18     '_GET'
         32        ASSIGN_DIM                                                   $18, 'tab'
         33        OP_DATA                                                      0
   41    34        INIT_FCALL                                                   'getpagenumber'
         35        SEND_VAR                                                     !0
         36        DO_FCALL                                          0  $20     
         37        ASSIGN                                                       !1, $20
   42    38        CONCAT                                               ~22     '%24_GET%5B%27tab%27%5D+%3D+-0%3A+', !1
         39        ECHO                                                         ~22
   44    40        ECHO                                                         '%0A'
   46    41        FETCH_W                          global              $23     '_GET'
         42        ASSIGN_DIM                                                   $23, 'tab'
         43        OP_DATA                                                      0
   47    44        INIT_FCALL                                                   'getpagenumber'
         45        SEND_VAR                                                     !0
         46        DO_FCALL                                          0  $25     
         47        ASSIGN                                                       !1, $25
   48    48        CONCAT                                               ~27     '%24_GET%5B%27tab%27%5D+%3D+0%3A+', !1
         49        ECHO                                                         ~27
   50    50        ECHO                                                         '%0A'
   52    51        FETCH_W                          global              $28     '_GET'
         52        ASSIGN_DIM                                                   $28, 'tab'
         53        OP_DATA                                                      1
   53    54        INIT_FCALL                                                   'getpagenumber'
         55        SEND_VAR                                                     !0
         56        DO_FCALL                                          0  $30     
         57        ASSIGN                                                       !1, $30
   54    58        CONCAT                                               ~32     '%24_GET%5B%27tab%27%5D+%3D+1%3A+', !1
         59        ECHO                                                         ~32
   56    60        ECHO                                                         '%0A'
   58    61        FETCH_W                          global              $33     '_GET'
         62        ASSIGN_DIM                                                   $33, 'tab'
         63        OP_DATA                                                      2
   59    64        INIT_FCALL                                                   'getpagenumber'
         65        SEND_VAR                                                     !0
         66        DO_FCALL                                          0  $35     
         67        ASSIGN                                                       !1, $35
   60    68        CONCAT                                               ~37     '%24_GET%5B%27tab%27%5D+%3D+2%3A+', !1
         69        ECHO                                                         ~37
   62    70        ECHO                                                         '%0A'
   64    71        FETCH_W                          global              $38     '_GET'
         72        ASSIGN_DIM                                                   $38, 'tab'
         73        OP_DATA                                                      3
   65    74        INIT_FCALL                                                   'getpagenumber'
         75        SEND_VAR                                                     !0
         76        DO_FCALL                                          0  $40     
         77        ASSIGN                                                       !1, $40
   66    78        CONCAT                                               ~42     '%24_GET%5B%27tab%27%5D+%3D+3%3A+', !1
         79        ECHO                                                         ~42
   68    80        ECHO                                                         '%0A'
   70    81        FETCH_W                          global              $43     '_GET'
         82        ASSIGN_DIM                                                   $43, 'tab'
         83        OP_DATA                                                      4
   71    84        INIT_FCALL                                                   'getpagenumber'
         85        SEND_VAR                                                     !0
         86        DO_FCALL                                          0  $45     
         87        ASSIGN                                                       !1, $45
   72    88        CONCAT                                               ~47     '%24_GET%5B%27tab%27%5D+%3D+4%3A+', !1
         89        ECHO                                                         ~47
         90      > RETURN                                                       1

Function getpagenumber:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 23
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 23
Branch analysis from position: 14
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
filename:       /in/91m8G
function name:  getPageNumber
number of ops:  25
compiled vars:  !0 = $total, !1 = $page, !2 = $maximoVEP, !3 = $total_pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   RECV                                                 !0      
    4     1        FETCH_IS                                             ~4      '_GET'
          2        ISSET_ISEMPTY_DIM_OBJ                             1          ~4, 'tab'
          3      > JMPZ                                                         ~5, ->6
          4    >   QM_ASSIGN                                            ~6      1
          5      > JMP                                                          ->10
          6    >   FETCH_R                          global              ~7      '_GET'
          7        FETCH_DIM_R                                          ~8      ~7, 'tab'
          8        CAST                                              4  ~9      ~8
          9        QM_ASSIGN                                            ~6      ~9
         10    >   ASSIGN                                                       !1, ~6
    5    11        IS_SMALLER_OR_EQUAL                                          !1, 0
         12      > JMPZ                                                         ~11, ->14
    7    13    >   ASSIGN                                                       !1, 1
    9    14    >   ASSIGN                                                       !2, 1
   10    15        INIT_FCALL                                                   'ceil'
         16        DIV                                                  ~14     !0, !2
         17        SEND_VAL                                                     ~14
         18        DO_ICALL                                             $15     
         19        ASSIGN                                                       !3, $15
   12    20        IS_SMALLER                                                   !3, !1
         21      > JMPZ                                                         ~17, ->23
   14    22    >   ASSIGN                                                       !1, !3
   17    23    > > RETURN                                                       !1
   18    24*     > RETURN                                                       null

End of function getpagenumber

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
242.02 ms | 2658 KiB | 23 Q