3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data_inicio = new DateTime('2014-10-01'); $data_final = new DateTime('2014-10-20'); $diferenca_data = $data_final->diff($data_inicio)->format('%d'); $possui_dias_semana = [ 'monday', 'sunday' ]; $dias_semana = [ 'monday' => 'Mon', 'tuesday' => 'Tue', 'wednesday' => 'Wed', 'thursday' => 'Thu', 'friday' => 'Fri', 'saturday' => 'Sat', 'sunday' => 'Sun' ]; $datas_da_semana = []; for($i = 1; $i <= $diferenca_data; $i++) { $data_modificada = $data_inicio->modify('+1 day'); $data = $data_modificada->format('Y-m-d'); $dia_semana = date('D', strtotime($data)); foreach($possui_dias_semana as $dia) { if( strtolower($dias_semana[$dia]) == strtolower($dia_semana)) { $datas_da_semana[] = [ 'date' => $data, 'day' => $dias_semana[$dia] ]; } } } var_dump($datas_da_semana);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 20
Branch analysis from position: 57
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
2 jumps found. (Code = 77) Position 1 = 37, Position 2 = 53
Branch analysis from position: 37
2 jumps found. (Code = 78) Position 1 = 38, Position 2 = 53
Branch analysis from position: 38
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 52
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
Branch analysis from position: 52
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 20
Branch analysis from position: 57
Branch analysis from position: 20
Branch analysis from position: 53
filename:       /in/L9jNO
function name:  (null)
number of ops:  61
compiled vars:  !0 = $data_inicio, !1 = $data_final, !2 = $diferenca_data, !3 = $possui_dias_semana, !4 = $dias_semana, !5 = $datas_da_semana, !6 = $i, !7 = $data_modificada, !8 = $data, !9 = $dia_semana, !10 = $dia
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $11     'DateTime'
          1        SEND_VAL_EX                                              '2014-10-01'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $11
    4     4        NEW                                              $14     'DateTime'
          5        SEND_VAL_EX                                              '2014-10-20'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $14
    6     8        INIT_METHOD_CALL                                         !1, 'diff'
          9        SEND_VAR_EX                                              !0
         10        DO_FCALL                                      0  $17     
         11        INIT_METHOD_CALL                                         $17, 'format'
         12        SEND_VAL_EX                                              '%25d'
         13        DO_FCALL                                      0  $18     
         14        ASSIGN                                                   !2, $18
    8    15        ASSIGN                                                   !3, <array>
   12    16        ASSIGN                                                   !4, <array>
   22    17        ASSIGN                                                   !5, <array>
   24    18        ASSIGN                                                   !6, 1
         19      > JMP                                                      ->55
   25    20    >   INIT_METHOD_CALL                                         !0, 'modify'
         21        SEND_VAL_EX                                              '%2B1+day'
         22        DO_FCALL                                      0  $24     
         23        ASSIGN                                                   !7, $24
   26    24        INIT_METHOD_CALL                                         !7, 'format'
         25        SEND_VAL_EX                                              'Y-m-d'
         26        DO_FCALL                                      0  $26     
         27        ASSIGN                                                   !8, $26
   27    28        INIT_FCALL                                               'date'
         29        SEND_VAL                                                 'D'
         30        INIT_FCALL                                               'strtotime'
         31        SEND_VAR                                                 !8
         32        DO_ICALL                                         $28     
         33        SEND_VAR                                                 $28
         34        DO_ICALL                                         $29     
         35        ASSIGN                                                   !9, $29
   29    36      > FE_RESET_R                                       $31     !3, ->53
         37    > > FE_FETCH_R                                               $31, !10, ->53
   30    38    >   INIT_FCALL                                               'strtolower'
         39        FETCH_DIM_R                                      ~32     !4, !10
         40        SEND_VAL                                                 ~32
         41        DO_ICALL                                         $33     
         42        INIT_FCALL                                               'strtolower'
         43        SEND_VAR                                                 !9
         44        DO_ICALL                                         $34     
         45        IS_EQUAL                                                 $33, $34
         46      > JMPZ                                                     ~35, ->52
   31    47    >   INIT_ARRAY                                       ~37     !8, 'date'
         48        FETCH_DIM_R                                      ~38     !4, !10
         49        ADD_ARRAY_ELEMENT                                ~37     ~38, 'day'
         50        ASSIGN_DIM                                               !5
         51        OP_DATA                                                  ~37
   29    52    > > JMP                                                      ->37
         53    >   FE_FREE                                                  $31
   24    54        PRE_INC                                                  !6
         55    >   IS_SMALLER_OR_EQUAL                                      !6, !2
         56      > JMPNZ                                                    ~40, ->20
   36    57    >   INIT_FCALL                                               'var_dump'
         58        SEND_VAR                                                 !5
         59        DO_ICALL                                                 
         60      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.35 ms | 1400 KiB | 21 Q