3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(\DateTime::createFromFormat('Y-m-d', '0000-00-00')); $birthday = date('d-m-Y', strtotime('0000-00-00')); $birthDate = explode('-', $birthday); echo $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md") ? ((date("Y") - $birthDate[2]) - 1) : (date("Y") - $birthDate[2]));
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 52
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 58
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QRSd3
function name:  (null)
number of ops:  61
compiled vars:  !0 = $birthday, !1 = $birthDate, !2 = $age
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_STATIC_METHOD_CALL                                  'DateTime', 'createFromFormat'
          2        SEND_VAL                                                 'Y-m-d'
          3        SEND_VAL                                                 '0000-00-00'
          4        DO_FCALL                                      0  $3      
          5        SEND_VAR                                                 $3
          6        DO_ICALL                                                 
    6     7        INIT_FCALL                                               'date'
          8        SEND_VAL                                                 'd-m-Y'
          9        INIT_FCALL                                               'strtotime'
         10        SEND_VAL                                                 '0000-00-00'
         11        DO_ICALL                                         $5      
         12        SEND_VAR                                                 $5
         13        DO_ICALL                                         $6      
         14        ASSIGN                                                   !0, $6
    7    15        INIT_FCALL                                               'explode'
         16        SEND_VAL                                                 '-'
         17        SEND_VAR                                                 !0
         18        DO_ICALL                                         $8      
         19        ASSIGN                                                   !1, $8
    8    20        INIT_FCALL                                               'date'
         21        SEND_VAL                                                 'md'
         22        INIT_FCALL                                               'date'
         23        SEND_VAL                                                 'U'
         24        INIT_FCALL                                               'mktime'
         25        SEND_VAL                                                 0
         26        SEND_VAL                                                 0
         27        SEND_VAL                                                 0
         28        FETCH_DIM_R                                      ~10     !1, 0
         29        SEND_VAL                                                 ~10
         30        FETCH_DIM_R                                      ~11     !1, 1
         31        SEND_VAL                                                 ~11
         32        FETCH_DIM_R                                      ~12     !1, 2
         33        SEND_VAL                                                 ~12
         34        DO_ICALL                                         $13     
         35        SEND_VAR                                                 $13
         36        DO_ICALL                                         $14     
         37        SEND_VAR                                                 $14
         38        DO_ICALL                                         $15     
         39        INIT_FCALL                                               'date'
         40        SEND_VAL                                                 'md'
         41        DO_ICALL                                         $16     
         42        IS_SMALLER                                               $16, $15
         43      > JMPZ                                                     ~17, ->52
    9    44    >   INIT_FCALL                                               'date'
         45        SEND_VAL                                                 'Y'
         46        DO_ICALL                                         $18     
         47        FETCH_DIM_R                                      ~19     !1, 2
         48        SUB                                              ~20     $18, ~19
         49        SUB                                              ~21     ~20, 1
         50        QM_ASSIGN                                        ~22     ~21
         51      > JMP                                                      ->58
   10    52    >   INIT_FCALL                                               'date'
         53        SEND_VAL                                                 'Y'
         54        DO_ICALL                                         $23     
         55        FETCH_DIM_R                                      ~24     !1, 2
         56        SUB                                              ~25     $23, ~24
         57        QM_ASSIGN                                        ~22     ~25
    8    58    >   ASSIGN                                           ~26     !2, ~22
         59        ECHO                                                     ~26
   10    60      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
178.04 ms | 1400 KiB | 23 Q