3v4l.org

run code in 300+ PHP versions simultaneously
<?php $daynames = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); $dayW = date("w"); echo "## 1) First method : just tweaking your code" . PHP_EOL . PHP_EOL; echo $daynames[$dayW % 7] . PHP_EOL; echo $daynames[($dayW +1) % 7] . PHP_EOL; echo $daynames[($dayW +2) % 7] . PHP_EOL; echo $daynames[($dayW +3) % 7] . PHP_EOL; echo $daynames[($dayW +4) % 7] . PHP_EOL; echo $daynames[($dayW +5) % 7] . PHP_EOL; echo $daynames[($dayW +6) % 7] . PHP_EOL; echo PHP_EOL . "## 2) Second method : a slightly more sophisticated example using a handy user-defined function" . PHP_EOL . PHP_EOL; function getDaynameAfterCountDays(int $dayOfWeek, int $countDaysAfter = 0) { $daynames = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); // 0) Preliminary checks to implement // $dayOfWeek must be an int value between 0 and 6 included // $countDaysAfter must be a positive int (>= 0) return $daynames[($dayOfWeek + $countDaysAfter) % 7]; } $currentDayName = $daynames[$dayW]; for($i = 0; $i < 7 ; $i++) { echo $currentDayName . ' +' . $i . ' day(s) --> ' . getDaynameAfterCountDays($dayW, $i) . PHP_EOL; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 56
Branch analysis from position: 56
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 45
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 45
Branch analysis from position: 58
Branch analysis from position: 45
filename:       /in/6daZo
function name:  (null)
number of ops:  59
compiled vars:  !0 = $daynames, !1 = $dayW, !2 = $currentDayName, !3 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    5     1        INIT_FCALL                                               'date'
          2        SEND_VAL                                                 'w'
          3        DO_ICALL                                         $5      
          4        ASSIGN                                                   !1, $5
    9     5        ECHO                                                     '%23%23+1%29+First+method+%3A+just+tweaking+your+code%0A%0A'
   10     6        MOD                                              ~7      !1, 7
          7        FETCH_DIM_R                                      ~8      !0, ~7
          8        CONCAT                                           ~9      ~8, '%0A'
          9        ECHO                                                     ~9
   11    10        ADD                                              ~10     !1, 1
         11        MOD                                              ~11     ~10, 7
         12        FETCH_DIM_R                                      ~12     !0, ~11
         13        CONCAT                                           ~13     ~12, '%0A'
         14        ECHO                                                     ~13
   12    15        ADD                                              ~14     !1, 2
         16        MOD                                              ~15     ~14, 7
         17        FETCH_DIM_R                                      ~16     !0, ~15
         18        CONCAT                                           ~17     ~16, '%0A'
         19        ECHO                                                     ~17
   13    20        ADD                                              ~18     !1, 3
         21        MOD                                              ~19     ~18, 7
         22        FETCH_DIM_R                                      ~20     !0, ~19
         23        CONCAT                                           ~21     ~20, '%0A'
         24        ECHO                                                     ~21
   14    25        ADD                                              ~22     !1, 4
         26        MOD                                              ~23     ~22, 7
         27        FETCH_DIM_R                                      ~24     !0, ~23
         28        CONCAT                                           ~25     ~24, '%0A'
         29        ECHO                                                     ~25
   15    30        ADD                                              ~26     !1, 5
         31        MOD                                              ~27     ~26, 7
         32        FETCH_DIM_R                                      ~28     !0, ~27
         33        CONCAT                                           ~29     ~28, '%0A'
         34        ECHO                                                     ~29
   16    35        ADD                                              ~30     !1, 6
         36        MOD                                              ~31     ~30, 7
         37        FETCH_DIM_R                                      ~32     !0, ~31
         38        CONCAT                                           ~33     ~32, '%0A'
         39        ECHO                                                     ~33
   18    40        ECHO                                                     '%0A%23%23+2%29+Second+method+%3A+a+slightly+more+sophisticated+example+using+a+handy+user-defined+function%0A%0A'
   33    41        FETCH_DIM_R                                      ~34     !0, !1
         42        ASSIGN                                                   !2, ~34
   34    43        ASSIGN                                                   !3, 0
         44      > JMP                                                      ->56
   36    45    >   CONCAT                                           ~37     !2, '+%2B'
         46        CONCAT                                           ~38     ~37, !3
         47        CONCAT                                           ~39     ~38, '+day%28s%29+--%3E+'
         48        INIT_FCALL                                               'getdaynameaftercountdays'
         49        SEND_VAR                                                 !1
         50        SEND_VAR                                                 !3
         51        DO_FCALL                                      0  $40     
         52        CONCAT                                           ~41     ~39, $40
         53        CONCAT                                           ~42     ~41, '%0A'
         54        ECHO                                                     ~42
   34    55        PRE_INC                                                  !3
         56    >   IS_SMALLER                                               !3, 7
         57      > JMPNZ                                                    ~44, ->45
   37    58    > > RETURN                                                   1

Function getdaynameaftercountdays:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/6daZo
function name:  getDaynameAfterCountDays
number of ops:  8
compiled vars:  !0 = $dayOfWeek, !1 = $countDaysAfter, !2 = $daynames
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   20     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      0
   23     2        ASSIGN                                                   !2, <array>
   29     3        ADD                                              ~4      !0, !1
          4        MOD                                              ~5      ~4, 7
          5        FETCH_DIM_R                                      ~6      !2, ~5
          6      > RETURN                                                   ~6
   31     7*     > RETURN                                                   null

End of function getdaynameaftercountdays

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
140.98 ms | 1074 KiB | 15 Q