3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Boilerplate to setup variables */ $start = new DateTime('2013-01-01'); $end = new DateTime('2013-12-31'); $interval = new DateInterval('P1D'); $period = new DatePeriod($start, $interval, $end->add($interval)); foreach($period as $date){ $dateArray[] = $date->format('Y-m-d'); } /** * End of boilerplate */ /** * Answer code */ $countArray = array('Jan' => 0, 'Feb' => 0, 'Mar' => 0, 'Apr' => 0, 'May' => 0, 'Jun' => 0, 'Jul' => 0, 'Aug' => 0, 'Sep' => 0, 'Oct' => 0, 'Nov' => 0, 'Dec' => 0); foreach($dateArray as $dateString){ $date = new DateTime($dateString); $countArray[$date->format('M')]++; } var_dump($countArray);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 22, Position 2 = 29
Branch analysis from position: 22
2 jumps found. (Code = 78) Position 1 = 23, Position 2 = 29
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
Branch analysis from position: 29
2 jumps found. (Code = 77) Position 1 = 32, Position 2 = 43
Branch analysis from position: 32
2 jumps found. (Code = 78) Position 1 = 33, Position 2 = 43
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 43
Branch analysis from position: 29
filename:       /in/2qIcN
function name:  (null)
number of ops:  48
compiled vars:  !0 = $start, !1 = $end, !2 = $interval, !3 = $period, !4 = $date, !5 = $dateArray, !6 = $countArray, !7 = $dateString
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E >   NEW                                              $8      'DateTime'
          1        SEND_VAL_EX                                              '2013-01-01'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $8
    6     4        NEW                                              $11     'DateTime'
          5        SEND_VAL_EX                                              '2013-12-31'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $11
    7     8        NEW                                              $14     'DateInterval'
          9        SEND_VAL_EX                                              'P1D'
         10        DO_FCALL                                      0          
         11        ASSIGN                                                   !2, $14
    8    12        NEW                                              $17     'DatePeriod'
         13        SEND_VAR_EX                                              !0
         14        SEND_VAR_EX                                              !2
         15        INIT_METHOD_CALL                                         !1, 'add'
         16        SEND_VAR_EX                                              !2
         17        DO_FCALL                                      0  $18     
         18        SEND_VAR_NO_REF_EX                                       $18
         19        DO_FCALL                                      0          
         20        ASSIGN                                                   !3, $17
    9    21      > FE_RESET_R                                       $21     !3, ->29
         22    > > FE_FETCH_R                                               $21, !4, ->29
   10    23    >   INIT_METHOD_CALL                                         !4, 'format'
         24        SEND_VAL_EX                                              'Y-m-d'
         25        DO_FCALL                                      0  $23     
         26        ASSIGN_DIM                                               !5
         27        OP_DATA                                                  $23
    9    28      > JMP                                                      ->22
         29    >   FE_FREE                                                  $21
   20    30        ASSIGN                                                   !6, <array>
   22    31      > FE_RESET_R                                       $25     !5, ->43
         32    > > FE_FETCH_R                                               $25, !7, ->43
   23    33    >   NEW                                              $26     'DateTime'
         34        SEND_VAR_EX                                              !7
         35        DO_FCALL                                      0          
         36        ASSIGN                                                   !4, $26
   24    37        INIT_METHOD_CALL                                         !4, 'format'
         38        SEND_VAL_EX                                              'M'
         39        DO_FCALL                                      0  $29     
         40        FETCH_DIM_RW                                     $30     !6, $29
         41        PRE_INC                                                  $30
   22    42      > JMP                                                      ->32
         43    >   FE_FREE                                                  $25
   27    44        INIT_FCALL                                               'var_dump'
         45        SEND_VAR                                                 !6
         46        DO_ICALL                                                 
         47      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.46 ms | 1400 KiB | 15 Q