3v4l.org

run code in 500+ PHP versions simultaneously
<?php date_default_timezone_set('Europe/Stockholm'); function displayAllowPostsMessage($dateTime, $isDebug = false) { $weekdayStartTime = new DateTime('09:00'); $weekdayEndTime = new DateTime('19:00'); $saturdayStartTime = new DateTime('10:00'); $saturdayEndTime = new DateTime('15:00'); $templateOpen = "It's %s and we are open!"; $templateClosed = "It's %s and the posting are only allowed between %s - %s. Sorry for the Inconvenience."; $dayOfTheWeek = intval($dateTime->format('N')); $message = "It's closed on sunday."; if ($isDebug) { $weekdayStartTime->setDate((int)$dateTime->format('Y'), (int)$dateTime->format('m'), (int)$dateTime->format('d')); $weekdayEndTime->setDate((int)$dateTime->format('Y'), (int)$dateTime->format('m'), (int)$dateTime->format('d')); $saturdayStartTime->setDate((int)$dateTime->format('Y'), (int)$dateTime->format('m'), (int)$dateTime->format('d')); $saturdayEndTime->setDate((int)$dateTime->format('Y'), (int)$dateTime->format('m'), (int)$dateTime->format('d')); } // On a weekday if ($dayOfTheWeek < 6) { $isOpen = $dateTime > $weekdayStartTime && $dateTime < $weekdayEndTime; $message = sprintf( $templateOpen, $dateTime->format('l H:i') ); if (!$isOpen) { $message = sprintf( $templateClosed, $dateTime->format('l H:i'), $weekdayStartTime->format("H:i"), $weekdayEndTime->format("H:i") ); } } // On a saturday if ($dayOfTheWeek === 6) { $isOpen = $dateTime > $saturdayStartTime && $dateTime < $saturdayEndTime; $message = sprintf( $templateOpen, $dateTime->format('l H:i') ); if (!$isOpen) { $message = sprintf( $templateClosed, $dateTime->format('l H:i'), $saturdayStartTime->format("H:i"), $saturdayEndTime->format("H:i") ); } } echo "$message\n"; } $testDates = array( DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 08:59'), // friday DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 09:00'), DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 09:01'), DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 18:59'), DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 19:00'), DateTime::createFromFormat('d/m/Y H:i', '18/12/2015 19:01'), DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 09:59'), // saturday DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 10:00'), DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 10:01'), DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 14:59'), DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 15:00'), DateTime::createFromFormat('d/m/Y H:i', '19/12/2015 15:01'), DateTime::createFromFormat('d/m/Y H:i', '20/12/2015 11:30') // sunday ); foreach ($testDates as $testDate) { displayAllowPostsMessage($testDate, true); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 70, Position 2 = 76
Branch analysis from position: 70
2 jumps found. (Code = 78) Position 1 = 71, Position 2 = 76
Branch analysis from position: 71
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
Branch analysis from position: 76
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 76
filename:       /in/FDEeR
function name:  (null)
number of ops:  78
compiled vars:  !0 = $testDates, !1 = $testDate
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                                   'date_default_timezone_set'
          1        SEND_VAL                                                     'Europe%2FStockholm'
          2        DO_ICALL                                                     
   58     3        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
          4        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
          5        SEND_VAL                                                     '18%2F12%2F2015+08%3A59'
          6        DO_FCALL                                          0  $3      
          7        INIT_ARRAY                                           ~4      $3
   59     8        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
          9        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         10        SEND_VAL                                                     '18%2F12%2F2015+09%3A00'
         11        DO_FCALL                                          0  $5      
         12        ADD_ARRAY_ELEMENT                                    ~4      $5
   60    13        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         14        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         15        SEND_VAL                                                     '18%2F12%2F2015+09%3A01'
         16        DO_FCALL                                          0  $6      
         17        ADD_ARRAY_ELEMENT                                    ~4      $6
   61    18        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         19        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         20        SEND_VAL                                                     '18%2F12%2F2015+18%3A59'
         21        DO_FCALL                                          0  $7      
         22        ADD_ARRAY_ELEMENT                                    ~4      $7
   62    23        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         24        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         25        SEND_VAL                                                     '18%2F12%2F2015+19%3A00'
         26        DO_FCALL                                          0  $8      
         27        ADD_ARRAY_ELEMENT                                    ~4      $8
   63    28        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         29        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         30        SEND_VAL                                                     '18%2F12%2F2015+19%3A01'
         31        DO_FCALL                                          0  $9      
         32        ADD_ARRAY_ELEMENT                                    ~4      $9
   64    33        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         34        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         35        SEND_VAL                                                     '19%2F12%2F2015+09%3A59'
         36        DO_FCALL                                          0  $10     
         37        ADD_ARRAY_ELEMENT                                    ~4      $10
   65    38        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         39        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         40        SEND_VAL                                                     '19%2F12%2F2015+10%3A00'
         41        DO_FCALL                                          0  $11     
         42        ADD_ARRAY_ELEMENT                                    ~4      $11
   66    43        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         44        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         45        SEND_VAL                                                     '19%2F12%2F2015+10%3A01'
         46        DO_FCALL                                          0  $12     
         47        ADD_ARRAY_ELEMENT                                    ~4      $12
   67    48        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         49        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         50        SEND_VAL                                                     '19%2F12%2F2015+14%3A59'
         51        DO_FCALL                                          0  $13     
         52        ADD_ARRAY_ELEMENT                                    ~4      $13
   68    53        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         54        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         55        SEND_VAL                                                     '19%2F12%2F2015+15%3A00'
         56        DO_FCALL                                          0  $14     
         57        ADD_ARRAY_ELEMENT                                    ~4      $14
   69    58        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         59        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         60        SEND_VAL                                                     '19%2F12%2F2015+15%3A01'
         61        DO_FCALL                                          0  $15     
         62        ADD_ARRAY_ELEMENT                                    ~4      $15
   70    63        INIT_STATIC_METHOD_CALL                                      'DateTime', 'createFromFormat'
         64        SEND_VAL                                                     'd%2Fm%2FY+H%3Ai'
         65        SEND_VAL                                                     '20%2F12%2F2015+11%3A30'
         66        DO_FCALL                                          0  $16     
         67        ADD_ARRAY_ELEMENT                                    ~4      $16
   57    68        ASSIGN                                                       !0, ~4
   73    69      > FE_RESET_R                                           $18     !0, ->76
         70    > > FE_FETCH_R                                                   $18, !1, ->76
   74    71    >   INIT_FCALL                                                   'displayallowpostsmessage'
         72        SEND_VAR                                                     !1
         73        SEND_VAL                                                     <true>
         74        DO_FCALL                                          0          
   73    75      > JMP                                                          ->70
         76    >   FE_FREE                                                      $18
   75    77      > RETURN                                                       1

Function displayallowpostsmessage:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 95
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 128
Branch analysis from position: 97
2 jumps found. (Code = 46) Position 1 = 99, Position 2 = 101
Branch analysis from position: 99
2 jumps found. (Code = 43) Position 1 = 112, Position 2 = 128
Branch analysis from position: 112
2 jumps found. (Code = 43) Position 1 = 130, Position 2 = 161
Branch analysis from position: 130
2 jumps found. (Code = 46) Position 1 = 132, Position 2 = 134
Branch analysis from position: 132
2 jumps found. (Code = 43) Position 1 = 145, Position 2 = 161
Branch analysis from position: 145
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 161
Branch analysis from position: 134
Branch analysis from position: 161
Branch analysis from position: 128
Branch analysis from position: 101
Branch analysis from position: 128
Branch analysis from position: 95
filename:       /in/FDEeR
function name:  displayAllowPostsMessage
number of ops:  165
compiled vars:  !0 = $dateTime, !1 = $isDebug, !2 = $weekdayStartTime, !3 = $weekdayEndTime, !4 = $saturdayStartTime, !5 = $saturdayEndTime, !6 = $templateOpen, !7 = $templateClosed, !8 = $dayOfTheWeek, !9 = $message, !10 = $isOpen
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   RECV                                                 !0      
          1        RECV_INIT                                            !1      <false>
    5     2        NEW                                                  $11     'DateTime'
          3        SEND_VAL_EX                                                  '09%3A00'
          4        DO_FCALL                                          0          
          5        ASSIGN                                                       !2, $11
    6     6        NEW                                                  $14     'DateTime'
          7        SEND_VAL_EX                                                  '19%3A00'
          8        DO_FCALL                                          0          
          9        ASSIGN                                                       !3, $14
    7    10        NEW                                                  $17     'DateTime'
         11        SEND_VAL_EX                                                  '10%3A00'
         12        DO_FCALL                                          0          
         13        ASSIGN                                                       !4, $17
    8    14        NEW                                                  $20     'DateTime'
         15        SEND_VAL_EX                                                  '15%3A00'
         16        DO_FCALL                                          0          
         17        ASSIGN                                                       !5, $20
    9    18        ASSIGN                                                       !6, 'It%27s+%25s+and+we+are+open%21'
   10    19        ASSIGN                                                       !7, 'It%27s+%25s+and+the+posting+are+only+allowed+between+%25s+-+%25s.+Sorry+for+the+Inconvenience.'
   11    20        INIT_METHOD_CALL                                             !0, 'format'
         21        SEND_VAL_EX                                                  'N'
         22        DO_FCALL                                          0  $25     
         23        CAST                                              4  ~26     $25
         24        ASSIGN                                                       !8, ~26
   12    25        ASSIGN                                                       !9, 'It%27s+closed+on+sunday.'
   14    26      > JMPZ                                                         !1, ->95
   15    27    >   INIT_METHOD_CALL                                             !2, 'setDate'
         28        INIT_METHOD_CALL                                             !0, 'format'
         29        SEND_VAL_EX                                                  'Y'
         30        DO_FCALL                                          0  $29     
         31        CAST                                              4  ~30     $29
         32        SEND_VAL_EX                                                  ~30
         33        INIT_METHOD_CALL                                             !0, 'format'
         34        SEND_VAL_EX                                                  'm'
         35        DO_FCALL                                          0  $31     
         36        CAST                                              4  ~32     $31
         37        SEND_VAL_EX                                                  ~32
         38        INIT_METHOD_CALL                                             !0, 'format'
         39        SEND_VAL_EX                                                  'd'
         40        DO_FCALL                                          0  $33     
         41        CAST                                              4  ~34     $33
         42        SEND_VAL_EX                                                  ~34
         43        DO_FCALL                                          0          
   16    44        INIT_METHOD_CALL                                             !3, 'setDate'
         45        INIT_METHOD_CALL                                             !0, 'format'
         46        SEND_VAL_EX                                                  'Y'
         47        DO_FCALL                                          0  $36     
         48        CAST                                              4  ~37     $36
         49        SEND_VAL_EX                                                  ~37
         50        INIT_METHOD_CALL                                             !0, 'format'
         51        SEND_VAL_EX                                                  'm'
         52        DO_FCALL                                          0  $38     
         53        CAST                                              4  ~39     $38
         54        SEND_VAL_EX                                                  ~39
         55        INIT_METHOD_CALL                                             !0, 'format'
         56        SEND_VAL_EX                                                  'd'
         57        DO_FCALL                                          0  $40     
         58        CAST                                              4  ~41     $40
         59        SEND_VAL_EX                                                  ~41
         60        DO_FCALL                                          0          
   17    61        INIT_METHOD_CALL                                             !4, 'setDate'
         62        INIT_METHOD_CALL                                             !0, 'format'
         63        SEND_VAL_EX                                                  'Y'
         64        DO_FCALL                                          0  $43     
         65        CAST                                              4  ~44     $43
         66        SEND_VAL_EX                                                  ~44
         67        INIT_METHOD_CALL                                             !0, 'format'
         68        SEND_VAL_EX                                                  'm'
         69        DO_FCALL                                          0  $45     
         70        CAST                                              4  ~46     $45
         71        SEND_VAL_EX                                                  ~46
         72        INIT_METHOD_CALL                                             !0, 'format'
         73        SEND_VAL_EX                                                  'd'
         74        DO_FCALL                                          0  $47     
         75        CAST                                              4  ~48     $47
         76        SEND_VAL_EX                                                  ~48
         77        DO_FCALL                                          0          
   18    78        INIT_METHOD_CALL                                             !5, 'setDate'
         79        INIT_METHOD_CALL                                             !0, 'format'
         80        SEND_VAL_EX                                                  'Y'
         81        DO_FCALL                                          0  $50     
         82        CAST                                              4  ~51     $50
         83        SEND_VAL_EX                                                  ~51
         84        INIT_METHOD_CALL                                             !0, 'format'
         85        SEND_VAL_EX                                                  'm'
         86        DO_FCALL                                          0  $52     
         87        CAST                                              4  ~53     $52
         88        SEND_VAL_EX                                                  ~53
         89        INIT_METHOD_CALL                                             !0, 'format'
         90        SEND_VAL_EX                                                  'd'
         91        DO_FCALL                                          0  $54     
         92        CAST                                              4  ~55     $54
         93        SEND_VAL_EX                                                  ~55
         94        DO_FCALL                                          0          
   22    95    >   IS_SMALLER                                                   !8, 6
         96      > JMPZ                                                         ~57, ->128
   23    97    >   IS_SMALLER                                           ~58     !2, !0
         98      > JMPZ_EX                                              ~58     ~58, ->101
         99    >   IS_SMALLER                                           ~59     !0, !3
        100        BOOL                                                 ~58     ~59
        101    >   ASSIGN                                                       !10, ~58
   24   102        INIT_FCALL                                                   'sprintf'
   25   103        SEND_VAR                                                     !6
   26   104        INIT_METHOD_CALL                                             !0, 'format'
        105        SEND_VAL_EX                                                  'l+H%3Ai'
        106        DO_FCALL                                          0  $61     
        107        SEND_VAR                                                     $61
   24   108        DO_ICALL                                             $62     
        109        ASSIGN                                                       !9, $62
   28   110        BOOL_NOT                                             ~64     !10
        111      > JMPZ                                                         ~64, ->128
   29   112    >   INIT_FCALL                                                   'sprintf'
   30   113        SEND_VAR                                                     !7
   31   114        INIT_METHOD_CALL                                             !0, 'format'
        115        SEND_VAL_EX                                                  'l+H%3Ai'
        116        DO_FCALL                                          0  $65     
        117        SEND_VAR                                                     $65
   32   118        INIT_METHOD_CALL                                             !2, 'format'
        119        SEND_VAL_EX                                                  'H%3Ai'
        120        DO_FCALL                                          0  $66     
        121        SEND_VAR                                                     $66
   33   122        INIT_METHOD_CALL                                             !3, 'format'
        123        SEND_VAL_EX                                                  'H%3Ai'
        124        DO_FCALL                                          0  $67     
        125        SEND_VAR                                                     $67
   29   126        DO_ICALL                                             $68     
        127        ASSIGN                                                       !9, $68
   39   128    >   IS_IDENTICAL                                                 !8, 6
        129      > JMPZ                                                         ~70, ->161
   40   130    >   IS_SMALLER                                           ~71     !4, !0
        131      > JMPZ_EX                                              ~71     ~71, ->134
        132    >   IS_SMALLER                                           ~72     !0, !5
        133        BOOL                                                 ~71     ~72
        134    >   ASSIGN                                                       !10, ~71
   41   135        INIT_FCALL                                                   'sprintf'
   42   136        SEND_VAR                                                     !6
   43   137        INIT_METHOD_CALL                                             !0, 'format'
        138        SEND_VAL_EX                                                  'l+H%3Ai'
        139        DO_FCALL                                          0  $74     
        140        SEND_VAR                                                     $74
   41   141        DO_ICALL                                             $75     
        142        ASSIGN                                                       !9, $75
   45   143        BOOL_NOT                                             ~77     !10
        144      > JMPZ                                                         ~77, ->161
   46   145    >   INIT_FCALL                                                   'sprintf'
   47   146        SEND_VAR                                                     !7
   48   147        INIT_METHOD_CALL                                             !0, 'format'
        148        SEND_VAL_EX                                                  'l+H%3Ai'
        149        DO_FCALL                                          0  $78     
        150        SEND_VAR                                                     $78
   49   151        INIT_METHOD_CALL                                             !4, 'format'
        152        SEND_VAL_EX                                                  'H%3Ai'
        153        DO_FCALL                                          0  $79     
        154        SEND_VAR                                                     $79
   50   155        INIT_METHOD_CALL                                             !5, 'format'
        156        SEND_VAL_EX                                                  'H%3Ai'
        157        DO_FCALL                                          0  $80     
        158        SEND_VAR                                                     $80
   46   159        DO_ICALL                                             $81     
        160        ASSIGN                                                       !9, $81
   54   161    >   NOP                                                          
        162        FAST_CONCAT                                          ~83     !9, '%0A'
        163        ECHO                                                         ~83
   55   164      > RETURN                                                       null

End of function displayallowpostsmessage

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
168.24 ms | 3140 KiB | 16 Q