3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(version_compare('10.0.', '10', '>=')); var_dump(version_compare('9.9.0', '10', '>=')); var_dump(version_compare('9', '10', '>=')); var_dump(version_compare('10.0.1', '10', '>=')); switch ('sqlsrv') { case 'mysql': echo "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) " . "ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->timeCol = VALUES($this->timeCol)"; case 'oci': // DUAL is Oracle specific dummy table echo "MERGE INTO $this->table USING DUAL ON ($this->idCol = :id) " . "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) " . "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->timeCol = :time"; case 'sqlsrv' && version_compare('10.0', '10', '>='): // MS SQL Server requires MERGE be terminated by semicolon echo "MERGE"; case 'sqlite': echo "INSERT OR REPLACE INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time)"; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 47
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 83
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 44, Position 2 = 117
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 46, Position 2 = 118
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 136
Branch analysis from position: 136
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 118
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 117
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 83
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Ve2tD
function name:  (null)
number of ops:  137
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               'version_compare'
          2        SEND_VAL                                                 '10.0.'
          3        SEND_VAL                                                 '10'
          4        SEND_VAL                                                 '%3E%3D'
          5        DO_ICALL                                         $0      
          6        SEND_VAR                                                 $0
          7        DO_ICALL                                                 
    4     8        INIT_FCALL                                               'var_dump'
          9        INIT_FCALL                                               'version_compare'
         10        SEND_VAL                                                 '9.9.0'
         11        SEND_VAL                                                 '10'
         12        SEND_VAL                                                 '%3E%3D'
         13        DO_ICALL                                         $2      
         14        SEND_VAR                                                 $2
         15        DO_ICALL                                                 
    5    16        INIT_FCALL                                               'var_dump'
         17        INIT_FCALL                                               'version_compare'
         18        SEND_VAL                                                 '9'
         19        SEND_VAL                                                 '10'
         20        SEND_VAL                                                 '%3E%3D'
         21        DO_ICALL                                         $4      
         22        SEND_VAR                                                 $4
         23        DO_ICALL                                                 
    6    24        INIT_FCALL                                               'var_dump'
         25        INIT_FCALL                                               'version_compare'
         26        SEND_VAL                                                 '10.0.1'
         27        SEND_VAL                                                 '10'
         28        SEND_VAL                                                 '%3E%3D'
         29        DO_ICALL                                         $6      
         30        SEND_VAR                                                 $6
         31        DO_ICALL                                                 
    9    32        IS_EQUAL                                                 'sqlsrv', 'mysql'
         33      > JMPNZ                                                    ~8, ->47
   12    34    >   IS_EQUAL                                                 'sqlsrv', 'oci'
         35      > JMPNZ                                                    ~8, ->83
   17    36    >   INIT_FCALL                                               'version_compare'
         37        SEND_VAL                                                 '10.0'
         38        SEND_VAL                                                 '10'
         39        SEND_VAL                                                 '%3E%3D'
         40        DO_ICALL                                         $9      
         41        BOOL                                             ~10     $9
         42        IS_EQUAL                                                 ~10, 'sqlsrv'
         43      > JMPNZ                                                    ~8, ->117
   20    44    >   IS_EQUAL                                                 'sqlsrv', 'sqlite'
         45      > JMPNZ                                                    ~8, ->118
         46    > > JMP                                                      ->136
   10    47    >   ROPE_INIT                                     9  ~20     'INSERT+INTO+'
         48        FETCH_THIS                                       $11     
         49        FETCH_OBJ_R                                      ~12     $11, 'table'
         50        ROPE_ADD                                      1  ~20     ~20, ~12
         51        ROPE_ADD                                      2  ~20     ~20, '+%28'
         52        FETCH_THIS                                       $13     
         53        FETCH_OBJ_R                                      ~14     $13, 'idCol'
         54        ROPE_ADD                                      3  ~20     ~20, ~14
         55        ROPE_ADD                                      4  ~20     ~20, '%2C+'
         56        FETCH_THIS                                       $15     
         57        FETCH_OBJ_R                                      ~16     $15, 'dataCol'
         58        ROPE_ADD                                      5  ~20     ~20, ~16
         59        ROPE_ADD                                      6  ~20     ~20, '%2C+'
         60        FETCH_THIS                                       $17     
         61        FETCH_OBJ_R                                      ~18     $17, 'timeCol'
         62        ROPE_ADD                                      7  ~20     ~20, ~18
         63        ROPE_END                                      8  ~19     ~20, '%29+VALUES+%28%3Aid%2C+%3Adata%2C+%3Atime%29+'
   11    64        ROPE_INIT                                     9  ~34     'ON+DUPLICATE+KEY+UPDATE+'
         65        FETCH_THIS                                       $25     
         66        FETCH_OBJ_R                                      ~26     $25, 'dataCol'
         67        ROPE_ADD                                      1  ~34     ~34, ~26
         68        ROPE_ADD                                      2  ~34     ~34, '+%3D+VALUES%28'
         69        FETCH_THIS                                       $27     
         70        FETCH_OBJ_R                                      ~28     $27, 'dataCol'
         71        ROPE_ADD                                      3  ~34     ~34, ~28
         72        ROPE_ADD                                      4  ~34     ~34, '%29%2C+'
         73        FETCH_THIS                                       $29     
         74        FETCH_OBJ_R                                      ~30     $29, 'timeCol'
         75        ROPE_ADD                                      5  ~34     ~34, ~30
         76        ROPE_ADD                                      6  ~34     ~34, '+%3D+VALUES%28'
         77        FETCH_THIS                                       $31     
         78        FETCH_OBJ_R                                      ~32     $31, 'timeCol'
         79        ROPE_ADD                                      7  ~34     ~34, ~32
         80        ROPE_END                                      8  ~33     ~34, '%29'
         81        CONCAT                                           ~39     ~19, ~33
         82        ECHO                                                     ~39
   14    83    >   ROPE_INIT                                     5  ~45     'MERGE+INTO+'
         84        FETCH_THIS                                       $40     
         85        FETCH_OBJ_R                                      ~41     $40, 'table'
         86        ROPE_ADD                                      1  ~45     ~45, ~41
         87        ROPE_ADD                                      2  ~45     ~45, '+USING+DUAL+ON+%28'
         88        FETCH_THIS                                       $42     
         89        FETCH_OBJ_R                                      ~43     $42, 'idCol'
         90        ROPE_ADD                                      3  ~45     ~45, ~43
         91        ROPE_END                                      4  ~44     ~45, '+%3D+%3Aid%29+'
   15    92        ROPE_INIT                                     7  ~55     'WHEN+NOT+MATCHED+THEN+INSERT+%28'
         93        FETCH_THIS                                       $48     
         94        FETCH_OBJ_R                                      ~49     $48, 'idCol'
         95        ROPE_ADD                                      1  ~55     ~55, ~49
         96        ROPE_ADD                                      2  ~55     ~55, '%2C+'
         97        FETCH_THIS                                       $50     
         98        FETCH_OBJ_R                                      ~51     $50, 'dataCol'
         99        ROPE_ADD                                      3  ~55     ~55, ~51
        100        ROPE_ADD                                      4  ~55     ~55, '%2C+'
        101        FETCH_THIS                                       $52     
        102        FETCH_OBJ_R                                      ~53     $52, 'timeCol'
        103        ROPE_ADD                                      5  ~55     ~55, ~53
        104        ROPE_END                                      6  ~54     ~55, '%29+VALUES+%28%3Aid%2C+%3Adata%2C+%3Atime%29+'
        105        CONCAT                                           ~59     ~44, ~54
   16   106        ROPE_INIT                                     5  ~65     'WHEN+MATCHED+THEN+UPDATE+SET+'
        107        FETCH_THIS                                       $60     
        108        FETCH_OBJ_R                                      ~61     $60, 'dataCol'
        109        ROPE_ADD                                      1  ~65     ~65, ~61
        110        ROPE_ADD                                      2  ~65     ~65, '+%3D+%3Adata%2C+'
        111        FETCH_THIS                                       $62     
        112        FETCH_OBJ_R                                      ~63     $62, 'timeCol'
        113        ROPE_ADD                                      3  ~65     ~65, ~63
        114        ROPE_END                                      4  ~64     ~65, '+%3D+%3Atime'
        115        CONCAT                                           ~68     ~59, ~64
        116        ECHO                                                     ~68
   19   117    >   ECHO                                                     'MERGE'
   21   118    >   ROPE_INIT                                     9  ~78     'INSERT+OR+REPLACE+INTO+'
        119        FETCH_THIS                                       $69     
        120        FETCH_OBJ_R                                      ~70     $69, 'table'
        121        ROPE_ADD                                      1  ~78     ~78, ~70
        122        ROPE_ADD                                      2  ~78     ~78, '+%28'
        123        FETCH_THIS                                       $71     
        124        FETCH_OBJ_R                                      ~72     $71, 'idCol'
        125        ROPE_ADD                                      3  ~78     ~78, ~72
        126        ROPE_ADD                                      4  ~78     ~78, '%2C+'
        127        FETCH_THIS                                       $73     
        128        FETCH_OBJ_R                                      ~74     $73, 'dataCol'
        129        ROPE_ADD                                      5  ~78     ~78, ~74
        130        ROPE_ADD                                      6  ~78     ~78, '%2C+'
        131        FETCH_THIS                                       $75     
        132        FETCH_OBJ_R                                      ~76     $75, 'timeCol'
        133        ROPE_ADD                                      7  ~78     ~78, ~76
        134        ROPE_END                                      8  ~77     ~78, '%29+VALUES+%28%3Aid%2C+%3Adata%2C+%3Atime%29'
        135        ECHO                                                     ~77
   22   136    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.76 ms | 1408 KiB | 17 Q