3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tests = array( 'first day', 'last day', 'next month', 'first day next month', 'last day next month', 'first day of next month', 'last day of next month' ); foreach ( $tests as $test ) { $result = date_parse( $test ); $rel = $result['relative']; echo $test, "\n- month: ", $rel['month'], '; day: ', $rel['day'], '; first-day-of: ', isset( $rel['first_day_of_month'] ) ? 'true' : 'false', '; last-day-of: ', isset( $rel['last_day_of_month'] ) ? 'true' : 'false', "\n"; $date = new DateTime( '2010-03-06 15:21 UTC' ); echo '- ', $date->format( DateTime::ISO8601 ); $date->modify( $test ); echo ' -> ', $date->format( DateTime::ISO8601 ), "\n\n"; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 50
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 50
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 21
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
Branch analysis from position: 28
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
filename:       /in/1G3hh
function name:  (null)
number of ops:  52
compiled vars:  !0 = $tests, !1 = $test, !2 = $result, !3 = $rel, !4 = $date
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   13     1      > FE_RESET_R                                       $6      !0, ->50
          2    > > FE_FETCH_R                                               $6, !1, ->50
   15     3    >   INIT_FCALL                                               'date_parse'
          4        SEND_VAR                                                 !1
          5        DO_ICALL                                         $7      
          6        ASSIGN                                                   !2, $7
   16     7        FETCH_DIM_R                                      ~9      !2, 'relative'
          8        ASSIGN                                                   !3, ~9
   17     9        ECHO                                                     !1
         10        ECHO                                                     '%0A-+month%3A+'
         11        FETCH_DIM_R                                      ~11     !3, 'month'
         12        ECHO                                                     ~11
         13        ECHO                                                     '%3B+day%3A+'
         14        FETCH_DIM_R                                      ~12     !3, 'day'
         15        ECHO                                                     ~12
   18    16        ECHO                                                     '%3B+first-day-of%3A+'
         17        ISSET_ISEMPTY_DIM_OBJ                         0          !3, 'first_day_of_month'
         18      > JMPZ                                                     ~13, ->21
         19    >   QM_ASSIGN                                        ~14     'true'
         20      > JMP                                                      ->22
         21    >   QM_ASSIGN                                        ~14     'false'
         22    >   ECHO                                                     ~14
   19    23        ECHO                                                     '%3B+last-day-of%3A+'
         24        ISSET_ISEMPTY_DIM_OBJ                         0          !3, 'last_day_of_month'
         25      > JMPZ                                                     ~15, ->28
         26    >   QM_ASSIGN                                        ~16     'true'
         27      > JMP                                                      ->29
         28    >   QM_ASSIGN                                        ~16     'false'
         29    >   ECHO                                                     ~16
         30        ECHO                                                     '%0A'
   20    31        NEW                                              $17     'DateTime'
         32        SEND_VAL_EX                                              '2010-03-06+15%3A21+UTC'
         33        DO_FCALL                                      0          
         34        ASSIGN                                                   !4, $17
   21    35        ECHO                                                     '-+'
         36        INIT_METHOD_CALL                                         !4, 'format'
         37        SEND_VAL_EX                                              'Y-m-d%5CTH%3Ai%3AsO'
         38        DO_FCALL                                      0  $20     
         39        ECHO                                                     $20
   22    40        INIT_METHOD_CALL                                         !4, 'modify'
         41        SEND_VAR_EX                                              !1
         42        DO_FCALL                                      0          
   23    43        ECHO                                                     '+-%3E+'
         44        INIT_METHOD_CALL                                         !4, 'format'
         45        SEND_VAL_EX                                              'Y-m-d%5CTH%3Ai%3AsO'
         46        DO_FCALL                                      0  $22     
         47        ECHO                                                     $22
         48        ECHO                                                     '%0A%0A'
   13    49      > JMP                                                      ->2
         50    >   FE_FREE                                                  $6
   24    51      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.36 ms | 1400 KiB | 15 Q