3v4l.org

run code in 300+ PHP versions simultaneously
<?php $days = []; $searchData = ['dat' => '2015-11-11']; $offset = 3; $now = date_create(); $offsetStart = -1 * $offset; echo date_create($searchData['dat'])->modify($offsetStart .' days')->format('Y-m-d H:i'); echo PHP_EOL . $now->format('Y-m-d H:i:s'); echo PHP_EOL . date_create($searchData['dat'])->diff($now)->days; if (date_create($searchData['dat'])->modify($offsetStart .' days') < $now) { $offsetStart = -1 * date_create($searchData['dat'])->diff($now)->days; } $offsetEnd = 2 * $offset + $offsetStart; for ($i = $offsetStart; $i <= $offsetEnd; $i++) { $days[] = $i; } print_r($days);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 55
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 60
Branch analysis from position: 65
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 60
Branch analysis from position: 65
Branch analysis from position: 60
Branch analysis from position: 55
filename:       /in/cvElI
function name:  (null)
number of ops:  69
compiled vars:  !0 = $days, !1 = $searchData, !2 = $offset, !3 = $now, !4 = $offsetStart, !5 = $offsetEnd, !6 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    4     1        ASSIGN                                                   !1, <array>
    5     2        ASSIGN                                                   !2, 3
    6     3        INIT_FCALL                                               'date_create'
          4        DO_ICALL                                         $10     
          5        ASSIGN                                                   !3, $10
    8     6        MUL                                              ~12     !2, -1
          7        ASSIGN                                                   !4, ~12
    9     8        INIT_FCALL                                               'date_create'
          9        FETCH_DIM_R                                      ~14     !1, 'dat'
         10        SEND_VAL                                                 ~14
         11        DO_ICALL                                         $15     
         12        INIT_METHOD_CALL                                         $15, 'modify'
         13        CONCAT                                           ~16     !4, '+days'
         14        SEND_VAL_EX                                              ~16
         15        DO_FCALL                                      0  $17     
         16        INIT_METHOD_CALL                                         $17, 'format'
         17        SEND_VAL_EX                                              'Y-m-d+H%3Ai'
         18        DO_FCALL                                      0  $18     
         19        ECHO                                                     $18
   10    20        INIT_METHOD_CALL                                         !3, 'format'
         21        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         22        DO_FCALL                                      0  $19     
         23        CONCAT                                           ~20     '%0A', $19
         24        ECHO                                                     ~20
   11    25        INIT_FCALL                                               'date_create'
         26        FETCH_DIM_R                                      ~21     !1, 'dat'
         27        SEND_VAL                                                 ~21
         28        DO_ICALL                                         $22     
         29        INIT_METHOD_CALL                                         $22, 'diff'
         30        SEND_VAR_EX                                              !3
         31        DO_FCALL                                      0  $23     
         32        FETCH_OBJ_R                                      ~24     $23, 'days'
         33        CONCAT                                           ~25     '%0A', ~24
         34        ECHO                                                     ~25
   12    35        INIT_FCALL                                               'date_create'
         36        FETCH_DIM_R                                      ~26     !1, 'dat'
         37        SEND_VAL                                                 ~26
         38        DO_ICALL                                         $27     
         39        INIT_METHOD_CALL                                         $27, 'modify'
         40        CONCAT                                           ~28     !4, '+days'
         41        SEND_VAL_EX                                              ~28
         42        DO_FCALL                                      0  $29     
         43        IS_SMALLER                                               $29, !3
         44      > JMPZ                                                     ~30, ->55
   13    45    >   INIT_FCALL                                               'date_create'
         46        FETCH_DIM_R                                      ~31     !1, 'dat'
         47        SEND_VAL                                                 ~31
         48        DO_ICALL                                         $32     
         49        INIT_METHOD_CALL                                         $32, 'diff'
         50        SEND_VAR_EX                                              !3
         51        DO_FCALL                                      0  $33     
         52        FETCH_OBJ_R                                      ~34     $33, 'days'
         53        MUL                                              ~35     ~34, -1
         54        ASSIGN                                                   !4, ~35
   15    55    >   MUL                                              ~37     !2, 2
         56        ADD                                              ~38     ~37, !4
         57        ASSIGN                                                   !5, ~38
   17    58        ASSIGN                                                   !6, !4
         59      > JMP                                                      ->63
   18    60    >   ASSIGN_DIM                                               !0
         61        OP_DATA                                                  !6
   17    62        PRE_INC                                                  !6
         63    >   IS_SMALLER_OR_EQUAL                                      !6, !5
         64      > JMPNZ                                                    ~43, ->60
   21    65    >   INIT_FCALL                                               'print_r'
         66        SEND_VAR                                                 !0
         67        DO_ICALL                                                 
         68      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.17 ms | 1400 KiB | 17 Q