3v4l.org

run code in 300+ PHP versions simultaneously
<?php function validBirthDate($fecha,$arrData,$params){ if (isset($arrData['fecha_nacimiento'])) { $month = isset($arrData['mes']) && is_numeric($arrData['mes']) && !strstr($arrData['mes'], '.') ? (int)$arrData['mes'] : 0; $day = isset($arrData['dia']) && is_numeric($arrData['dia']) && !strstr($arrData['dia'], '.') ? (int)$arrData['dia'] : 0; $year = isset($arrData['anio']) && is_numeric($arrData['anio']) && !strstr($arrData['anio'], '.') ? (int)$arrData['anio'] : 0; return checkdate($month, $day, $year); }else{ return false; } } echo validBirthDate('', array('fecha_nacimiento'=>'123', 'mes'=>'1', 'dia'=>'0', 'anio'=>'1'),1) ? 'valid' : 'invalid';
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5FMT2
function name:  (null)
number of ops:  11
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   16     0  E >   INIT_FCALL                                               'validbirthdate'
          1        SEND_VAL                                                 ''
          2        SEND_VAL                                                 <array>
          3        SEND_VAL                                                 1
          4        DO_FCALL                                      0  $0      
          5      > JMPZ                                                     $0, ->8
          6    >   QM_ASSIGN                                        ~1      'valid'
          7      > JMP                                                      ->9
          8    >   QM_ASSIGN                                        ~1      'invalid'
          9    >   ECHO                                                     ~1
         10      > RETURN                                                   1

Function validbirthdate:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 78
Branch analysis from position: 5
2 jumps found. (Code = 46) Position 1 = 7, Position 2 = 12
Branch analysis from position: 7
2 jumps found. (Code = 46) Position 1 = 13, Position 2 = 20
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 34
Branch analysis from position: 29
2 jumps found. (Code = 46) Position 1 = 35, Position 2 = 42
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 47
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 46) Position 1 = 51, Position 2 = 56
Branch analysis from position: 51
2 jumps found. (Code = 46) Position 1 = 57, Position 2 = 64
Branch analysis from position: 57
2 jumps found. (Code = 43) Position 1 = 65, Position 2 = 69
Branch analysis from position: 65
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 69
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 64
Branch analysis from position: 56
Branch analysis from position: 47
2 jumps found. (Code = 46) Position 1 = 51, Position 2 = 56
Branch analysis from position: 51
Branch analysis from position: 56
Branch analysis from position: 42
Branch analysis from position: 34
Branch analysis from position: 25
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 34
Branch analysis from position: 29
Branch analysis from position: 34
Branch analysis from position: 20
Branch analysis from position: 12
Branch analysis from position: 78
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5FMT2
function name:  validBirthDate
number of ops:  80
compiled vars:  !0 = $fecha, !1 = $arrData, !2 = $params, !3 = $month, !4 = $day, !5 = $year
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
    3     3        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 'fecha_nacimiento'
          4      > JMPZ                                                     ~6, ->78
    4     5    >   ISSET_ISEMPTY_DIM_OBJ                         0  ~7      !1, 'mes'
          6      > JMPZ_EX                                          ~7      ~7, ->12
          7    >   INIT_FCALL                                               'is_numeric'
          8        FETCH_DIM_R                                      ~8      !1, 'mes'
          9        SEND_VAL                                                 ~8
         10        DO_ICALL                                         $9      
         11        BOOL                                             ~7      $9
         12    > > JMPZ_EX                                          ~7      ~7, ->20
         13    >   INIT_FCALL                                               'strstr'
         14        FETCH_DIM_R                                      ~10     !1, 'mes'
         15        SEND_VAL                                                 ~10
         16        SEND_VAL                                                 '.'
         17        DO_ICALL                                         $11     
         18        BOOL_NOT                                         ~12     $11
         19        BOOL                                             ~7      ~12
         20    > > JMPZ                                                     ~7, ->25
         21    >   FETCH_DIM_R                                      ~13     !1, 'mes'
         22        CAST                                          4  ~14     ~13
         23        QM_ASSIGN                                        ~15     ~14
         24      > JMP                                                      ->26
         25    >   QM_ASSIGN                                        ~15     0
         26    >   ASSIGN                                                   !3, ~15
    5    27        ISSET_ISEMPTY_DIM_OBJ                         0  ~17     !1, 'dia'
         28      > JMPZ_EX                                          ~17     ~17, ->34
         29    >   INIT_FCALL                                               'is_numeric'
         30        FETCH_DIM_R                                      ~18     !1, 'dia'
         31        SEND_VAL                                                 ~18
         32        DO_ICALL                                         $19     
         33        BOOL                                             ~17     $19
         34    > > JMPZ_EX                                          ~17     ~17, ->42
         35    >   INIT_FCALL                                               'strstr'
         36        FETCH_DIM_R                                      ~20     !1, 'dia'
         37        SEND_VAL                                                 ~20
         38        SEND_VAL                                                 '.'
         39        DO_ICALL                                         $21     
         40        BOOL_NOT                                         ~22     $21
         41        BOOL                                             ~17     ~22
         42    > > JMPZ                                                     ~17, ->47
         43    >   FETCH_DIM_R                                      ~23     !1, 'dia'
         44        CAST                                          4  ~24     ~23
         45        QM_ASSIGN                                        ~25     ~24
         46      > JMP                                                      ->48
         47    >   QM_ASSIGN                                        ~25     0
         48    >   ASSIGN                                                   !4, ~25
    6    49        ISSET_ISEMPTY_DIM_OBJ                         0  ~27     !1, 'anio'
         50      > JMPZ_EX                                          ~27     ~27, ->56
         51    >   INIT_FCALL                                               'is_numeric'
         52        FETCH_DIM_R                                      ~28     !1, 'anio'
         53        SEND_VAL                                                 ~28
         54        DO_ICALL                                         $29     
         55        BOOL                                             ~27     $29
         56    > > JMPZ_EX                                          ~27     ~27, ->64
         57    >   INIT_FCALL                                               'strstr'
         58        FETCH_DIM_R                                      ~30     !1, 'anio'
         59        SEND_VAL                                                 ~30
         60        SEND_VAL                                                 '.'
         61        DO_ICALL                                         $31     
         62        BOOL_NOT                                         ~32     $31
         63        BOOL                                             ~27     ~32
         64    > > JMPZ                                                     ~27, ->69
         65    >   FETCH_DIM_R                                      ~33     !1, 'anio'
         66        CAST                                          4  ~34     ~33
         67        QM_ASSIGN                                        ~35     ~34
         68      > JMP                                                      ->70
         69    >   QM_ASSIGN                                        ~35     0
         70    >   ASSIGN                                                   !5, ~35
    7    71        INIT_FCALL                                               'checkdate'
         72        SEND_VAR                                                 !3
         73        SEND_VAR                                                 !4
         74        SEND_VAR                                                 !5
         75        DO_ICALL                                         $37     
         76      > RETURN                                                   $37
         77*       JMP                                                      ->79
    9    78    > > RETURN                                                   <false>
   11    79*     > RETURN                                                   null

End of function validbirthdate

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.08 ms | 1407 KiB | 20 Q