3v4l.org

run code in 500+ 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.5.0


preferences:
161.55 ms | 2204 KiB | 15 Q