3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.2 ms | 1400 KiB | 21 Q