3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo '0: '.(boolval(0) ? 'true' : 'false')."\n"; echo '42: '.(boolval(42) ? 'true' : 'false')."\n"; echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."\n"; echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."\n"; echo '"": '.(boolval("") ? 'true' : 'false')."\n"; echo '"string": '.(boolval("string") ? 'true' : 'false')."\n"; echo '"0": '.(boolval("0") ? 'true' : 'false')."\n"; echo '"1": '.(boolval("1") ? 'true' : 'false')."\n"; echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."\n"; echo '[]: '.(boolval([]) ? 'true' : 'false')."\n"; echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n"; echo '0: '.((bool)0 ? 'true' : 'false')."\n"; echo '42: '.((bool)42 ? 'true' : 'false')."\n"; echo '0.0: '.((bool)0.0 ? 'true' : 'false')."\n"; echo '4.2: '.((bool)4.2 ? 'true' : 'false')."\n"; echo '"": '.((bool)"" ? 'true' : 'false')."\n"; echo '"string": '.((bool)"string" ? 'true' : 'false')."\n"; echo '"0": '.((bool)"0" ? 'true' : 'false')."\n"; echo '"1": '.((bool)"1" ? 'true' : 'false')."\n"; echo '[1, 2]: '.((bool)[1, 2] ? 'true' : 'false')."\n"; echo '[]: '.((bool)[] ? 'true' : 'false')."\n"; echo 'stdClass: '.((bool)new stdClass ? 'true' : 'false')."\n";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 2, Position 2 = 4
Branch analysis from position: 2
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 20
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 44
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
1 jumps found. (Code = 42) Position 1 = 61
Branch analysis from position: 61
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 68
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 69
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 76
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
2 jumps found. (Code = 43) Position 1 = 84, Position 2 = 86
Branch analysis from position: 84
1 jumps found. (Code = 42) Position 1 = 87
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 92, Position 2 = 94
Branch analysis from position: 92
1 jumps found. (Code = 42) Position 1 = 95
Branch analysis from position: 95
2 jumps found. (Code = 43) Position 1 = 100, Position 2 = 102
Branch analysis from position: 100
1 jumps found. (Code = 42) Position 1 = 103
Branch analysis from position: 103
2 jumps found. (Code = 43) Position 1 = 108, Position 2 = 110
Branch analysis from position: 108
1 jumps found. (Code = 42) Position 1 = 111
Branch analysis from position: 111
2 jumps found. (Code = 43) Position 1 = 116, Position 2 = 118
Branch analysis from position: 116
1 jumps found. (Code = 42) Position 1 = 119
Branch analysis from position: 119
2 jumps found. (Code = 43) Position 1 = 124, Position 2 = 126
Branch analysis from position: 124
1 jumps found. (Code = 42) Position 1 = 127
Branch analysis from position: 127
2 jumps found. (Code = 43) Position 1 = 132, Position 2 = 134
Branch analysis from position: 132
1 jumps found. (Code = 42) Position 1 = 135
Branch analysis from position: 135
2 jumps found. (Code = 43) Position 1 = 140, Position 2 = 142
Branch analysis from position: 140
1 jumps found. (Code = 42) Position 1 = 143
Branch analysis from position: 143
2 jumps found. (Code = 43) Position 1 = 148, Position 2 = 150
Branch analysis from position: 148
1 jumps found. (Code = 42) Position 1 = 151
Branch analysis from position: 151
2 jumps found. (Code = 43) Position 1 = 156, Position 2 = 158
Branch analysis from position: 156
1 jumps found. (Code = 42) Position 1 = 159
Branch analysis from position: 159
2 jumps found. (Code = 43) Position 1 = 164, Position 2 = 166
Branch analysis from position: 164
1 jumps found. (Code = 42) Position 1 = 167
Branch analysis from position: 167
2 jumps found. (Code = 43) Position 1 = 174, Position 2 = 176
Branch analysis from position: 174
1 jumps found. (Code = 42) Position 1 = 177
Branch analysis from position: 177
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 176
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 166
2 jumps found. (Code = 43) Position 1 = 174, Position 2 = 176
Branch analysis from position: 174
Branch analysis from position: 176
Branch analysis from position: 158
2 jumps found. (Code = 43) Position 1 = 164, Position 2 = 166
Branch analysis from position: 164
Branch analysis from position: 166
Branch analysis from position: 150
2 jumps found. (Code = 43) Position 1 = 156, Position 2 = 158
Branch analysis from position: 156
Branch analysis from position: 158
Branch analysis from position: 142
2 jumps found. (Code = 43) Position 1 = 148, Position 2 = 150
Branch analysis from position: 148
Branch analysis from position: 150
Branch analysis from position: 134
2 jumps found. (Code = 43) Position 1 = 140, Position 2 = 142
Branch analysis from position: 140
Branch analysis from position: 142
Branch analysis from position: 126
2 jumps found. (Code = 43) Position 1 = 132, Position 2 = 134
Branch analysis from position: 132
Branch analysis from position: 134
Branch analysis from position: 118
2 jumps found. (Code = 43) Position 1 = 124, Position 2 = 126
Branch analysis from position: 124
Branch analysis from position: 126
Branch analysis from position: 110
2 jumps found. (Code = 43) Position 1 = 116, Position 2 = 118
Branch analysis from position: 116
Branch analysis from position: 118
Branch analysis from position: 102
2 jumps found. (Code = 43) Position 1 = 108, Position 2 = 110
Branch analysis from position: 108
Branch analysis from position: 110
Branch analysis from position: 94
2 jumps found. (Code = 43) Position 1 = 100, Position 2 = 102
Branch analysis from position: 100
Branch analysis from position: 102
Branch analysis from position: 86
2 jumps found. (Code = 43) Position 1 = 92, Position 2 = 94
Branch analysis from position: 92
Branch analysis from position: 94
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 84, Position 2 = 86
Branch analysis from position: 84
Branch analysis from position: 86
Branch analysis from position: 68
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 76
Branch analysis from position: 74
Branch analysis from position: 76
Branch analysis from position: 60
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 68
Branch analysis from position: 66
Branch analysis from position: 68
Branch analysis from position: 52
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
Branch analysis from position: 60
Branch analysis from position: 44
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
Branch analysis from position: 52
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 44
Branch analysis from position: 42
Branch analysis from position: 44
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
Branch analysis from position: 36
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
Branch analysis from position: 28
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 20
Branch analysis from position: 18
Branch analysis from position: 20
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
Branch analysis from position: 12
filename:       /in/Ct1Yf
function name:  (null)
number of ops:  181
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   BOOL                                             ~0      0
          1      > JMPZ                                                     ~0, ->4
          2    >   QM_ASSIGN                                        ~1      'true'
          3      > JMP                                                      ->5
          4    >   QM_ASSIGN                                        ~1      'false'
          5    >   CONCAT                                           ~2      '0%3A++++++++', ~1
          6        CONCAT                                           ~3      ~2, '%0A'
          7        ECHO                                                     ~3
    5     8        BOOL                                             ~4      42
          9      > JMPZ                                                     ~4, ->12
         10    >   QM_ASSIGN                                        ~5      'true'
         11      > JMP                                                      ->13
         12    >   QM_ASSIGN                                        ~5      'false'
         13    >   CONCAT                                           ~6      '42%3A+++++++', ~5
         14        CONCAT                                           ~7      ~6, '%0A'
         15        ECHO                                                     ~7
    6    16        BOOL                                             ~8      0
         17      > JMPZ                                                     ~8, ->20
         18    >   QM_ASSIGN                                        ~9      'true'
         19      > JMP                                                      ->21
         20    >   QM_ASSIGN                                        ~9      'false'
         21    >   CONCAT                                           ~10     '0.0%3A++++++', ~9
         22        CONCAT                                           ~11     ~10, '%0A'
         23        ECHO                                                     ~11
    7    24        BOOL                                             ~12     4.2
         25      > JMPZ                                                     ~12, ->28
         26    >   QM_ASSIGN                                        ~13     'true'
         27      > JMP                                                      ->29
         28    >   QM_ASSIGN                                        ~13     'false'
         29    >   CONCAT                                           ~14     '4.2%3A++++++', ~13
         30        CONCAT                                           ~15     ~14, '%0A'
         31        ECHO                                                     ~15
    8    32        BOOL                                             ~16     ''
         33      > JMPZ                                                     ~16, ->36
         34    >   QM_ASSIGN                                        ~17     'true'
         35      > JMP                                                      ->37
         36    >   QM_ASSIGN                                        ~17     'false'
         37    >   CONCAT                                           ~18     '%22%22%3A+++++++', ~17
         38        CONCAT                                           ~19     ~18, '%0A'
         39        ECHO                                                     ~19
    9    40        BOOL                                             ~20     'string'
         41      > JMPZ                                                     ~20, ->44
         42    >   QM_ASSIGN                                        ~21     'true'
         43      > JMP                                                      ->45
         44    >   QM_ASSIGN                                        ~21     'false'
         45    >   CONCAT                                           ~22     '%22string%22%3A+', ~21
         46        CONCAT                                           ~23     ~22, '%0A'
         47        ECHO                                                     ~23
   10    48        BOOL                                             ~24     '0'
         49      > JMPZ                                                     ~24, ->52
         50    >   QM_ASSIGN                                        ~25     'true'
         51      > JMP                                                      ->53
         52    >   QM_ASSIGN                                        ~25     'false'
         53    >   CONCAT                                           ~26     '%220%22%3A++++++', ~25
         54        CONCAT                                           ~27     ~26, '%0A'
         55        ECHO                                                     ~27
   11    56        BOOL                                             ~28     '1'
         57      > JMPZ                                                     ~28, ->60
         58    >   QM_ASSIGN                                        ~29     'true'
         59      > JMP                                                      ->61
         60    >   QM_ASSIGN                                        ~29     'false'
         61    >   CONCAT                                           ~30     '%221%22%3A++++++', ~29
         62        CONCAT                                           ~31     ~30, '%0A'
         63        ECHO                                                     ~31
   12    64        BOOL                                             ~32     <array>
         65      > JMPZ                                                     ~32, ->68
         66    >   QM_ASSIGN                                        ~33     'true'
         67      > JMP                                                      ->69
         68    >   QM_ASSIGN                                        ~33     'false'
         69    >   CONCAT                                           ~34     '%5B1%2C+2%5D%3A+++', ~33
         70        CONCAT                                           ~35     ~34, '%0A'
         71        ECHO                                                     ~35
   13    72        BOOL                                             ~36     <array>
         73      > JMPZ                                                     ~36, ->76
         74    >   QM_ASSIGN                                        ~37     'true'
         75      > JMP                                                      ->77
         76    >   QM_ASSIGN                                        ~37     'false'
         77    >   CONCAT                                           ~38     '%5B%5D%3A+++++++', ~37
         78        CONCAT                                           ~39     ~38, '%0A'
         79        ECHO                                                     ~39
   14    80        NEW                                              $40     'stdClass'
         81        DO_FCALL                                      0          
         82        BOOL                                             ~42     $40
         83      > JMPZ                                                     ~42, ->86
         84    >   QM_ASSIGN                                        ~43     'true'
         85      > JMP                                                      ->87
         86    >   QM_ASSIGN                                        ~43     'false'
         87    >   CONCAT                                           ~44     'stdClass%3A+', ~43
         88        CONCAT                                           ~45     ~44, '%0A'
         89        ECHO                                                     ~45
   16    90        BOOL                                             ~46     0
         91      > JMPZ                                                     ~46, ->94
         92    >   QM_ASSIGN                                        ~47     'true'
         93      > JMP                                                      ->95
         94    >   QM_ASSIGN                                        ~47     'false'
         95    >   CONCAT                                           ~48     '0%3A++++++++', ~47
         96        CONCAT                                           ~49     ~48, '%0A'
         97        ECHO                                                     ~49
   17    98        BOOL                                             ~50     42
         99      > JMPZ                                                     ~50, ->102
        100    >   QM_ASSIGN                                        ~51     'true'
        101      > JMP                                                      ->103
        102    >   QM_ASSIGN                                        ~51     'false'
        103    >   CONCAT                                           ~52     '42%3A+++++++', ~51
        104        CONCAT                                           ~53     ~52, '%0A'
        105        ECHO                                                     ~53
   18   106        BOOL                                             ~54     0
        107      > JMPZ                                                     ~54, ->110
        108    >   QM_ASSIGN                                        ~55     'true'
        109      > JMP                                                      ->111
        110    >   QM_ASSIGN                                        ~55     'false'
        111    >   CONCAT                                           ~56     '0.0%3A++++++', ~55
        112        CONCAT                                           ~57     ~56, '%0A'
        113        ECHO                                                     ~57
   19   114        BOOL                                             ~58     4.2
        115      > JMPZ                                                     ~58, ->118
        116    >   QM_ASSIGN                                        ~59     'true'
        117      > JMP                                                      ->119
        118    >   QM_ASSIGN                                        ~59     'false'
        119    >   CONCAT                                           ~60     '4.2%3A++++++', ~59
        120        CONCAT                                           ~61     ~60, '%0A'
        121        ECHO                                                     ~61
   20   122        BOOL                                             ~62     ''
        123      > JMPZ                                                     ~62, ->126
        124    >   QM_ASSIGN                                        ~63     'true'
        125      > JMP                                                      ->127
        126    >   QM_ASSIGN                                        ~63     'false'
        127    >   CONCAT                                           ~64     '%22%22%3A+++++++', ~63
        128        CONCAT                                           ~65     ~64, '%0A'
        129        ECHO                                                     ~65
   21   130        BOOL                                             ~66     'string'
        131      > JMPZ                                                     ~66, ->134
        132    >   QM_ASSIGN                                        ~67     'true'
        133      > JMP                                                      ->135
        134    >   QM_ASSIGN                                        ~67     'false'
        135    >   CONCAT                                           ~68     '%22string%22%3A+', ~67
        136        CONCAT                                           ~69     ~68, '%0A'
        137        ECHO                                                     ~69
   22   138        BOOL                                             ~70     '0'
        139      > JMPZ                                                     ~70, ->142
        140    >   QM_ASSIGN                                        ~71     'true'
        141      > JMP                                                      ->143
        142    >   QM_ASSIGN                                        ~71     'false'
        143    >   CONCAT                                           ~72     '%220%22%3A++++++', ~71
        144        CONCAT                                           ~73     ~72, '%0A'
        145        ECHO                                                     ~73
   23   146        BOOL                                             ~74     '1'
        147      > JMPZ                                                     ~74, ->150
        148    >   QM_ASSIGN                                        ~75     'true'
        149      > JMP                                                      ->151
        150    >   QM_ASSIGN                                        ~75     'false'
        151    >   CONCAT                                           ~76     '%221%22%3A++++++', ~75
        152        CONCAT                                           ~77     ~76, '%0A'
        153        ECHO                                                     ~77
   24   154        BOOL                                             ~78     <array>
        155      > JMPZ                                                     ~78, ->158
        156    >   QM_ASSIGN                                        ~79     'true'
        157      > JMP                                                      ->159
        158    >   QM_ASSIGN                                        ~79     'false'
        159    >   CONCAT                                           ~80     '%5B1%2C+2%5D%3A+++', ~79
        160        CONCAT                                           ~81     ~80, '%0A'
        161        ECHO                                                     ~81
   25   162        BOOL                                             ~82     <array>
        163      > JMPZ                                                     ~82, ->166
        164    >   QM_ASSIGN                                        ~83     'true'
        165      > JMP                                                      ->167
        166    >   QM_ASSIGN                                        ~83     'false'
        167    >   CONCAT                                           ~84     '%5B%5D%3A+++++++', ~83
        168        CONCAT                                           ~85     ~84, '%0A'
        169        ECHO                                                     ~85
   26   170        NEW                                              $86     'stdClass'
        171        DO_FCALL                                      0          
        172        BOOL                                             ~88     $86
        173      > JMPZ                                                     ~88, ->176
        174    >   QM_ASSIGN                                        ~89     'true'
        175      > JMP                                                      ->177
        176    >   QM_ASSIGN                                        ~89     'false'
        177    >   CONCAT                                           ~90     'stdClass%3A+', ~89
        178        CONCAT                                           ~91     ~90, '%0A'
        179        ECHO                                                     ~91
        180      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
164.27 ms | 1419 KiB | 14 Q