3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo "Compare two non numeric strings: ('str' == '0') = " . ('str' == '0' ? 'true' : 'false') . "\n"; echo "Compare non numeric string to intteger 0: ('str' == 0) = " . ('str' == 0 ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (same senamtic): ('1e1' == '10') = " . ('1e1' == '10' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision): ('0.9999999999999999' == '1') = " . ('0.9999999999999999' == '1' ? ' true' : 'false') . "\n"; echo "Compare two numeric strings (precision1): ('0.99999999999999991' == '1') = " . ('0.99999999999999991' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision2): ('0.99999999999999992' == '1') = " . ('0.99999999999999992' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision3): ('0.99999999999999993' == '1') = " . ('0.99999999999999993' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision4): ('0.99999999999999994' == '1') = " . ('0.99999999999999994' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision5): ('0.99999999999999995' == '1') = " . ('0.99999999999999995' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision6): ('0.99999999999999996' == '1') = " . ('0.99999999999999996' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision7): ('0.99999999999999997' == '1') = " . ('0.99999999999999997' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision8): ('0.99999999999999998' == '1') = " . ('0.99999999999999998' == '1' ? 'true' : 'false') . "\n"; echo "Compare two numeric strings (precision9): ('0.99999999999999999' == '1') = " . ('0.99999999999999999' == '1' ? 'true' : 'false') . "\n";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 1, Position 2 = 3
Branch analysis from position: 1
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 10
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 17
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 24
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 38
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
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 = 57, Position 2 = 59
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
2 jumps found. (Code = 43) Position 1 = 64, Position 2 = 66
Branch analysis from position: 64
1 jumps found. (Code = 42) Position 1 = 67
Branch analysis from position: 67
2 jumps found. (Code = 43) Position 1 = 71, Position 2 = 73
Branch analysis from position: 71
1 jumps found. (Code = 42) Position 1 = 74
Branch analysis from position: 74
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 80
Branch analysis from position: 78
1 jumps found. (Code = 42) Position 1 = 81
Branch analysis from position: 81
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 87
Branch analysis from position: 85
1 jumps found. (Code = 42) Position 1 = 88
Branch analysis from position: 88
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 87
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 80
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 87
Branch analysis from position: 85
Branch analysis from position: 87
Branch analysis from position: 73
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 80
Branch analysis from position: 78
Branch analysis from position: 80
Branch analysis from position: 66
2 jumps found. (Code = 43) Position 1 = 71, Position 2 = 73
Branch analysis from position: 71
Branch analysis from position: 73
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 64, Position 2 = 66
Branch analysis from position: 64
Branch analysis from position: 66
Branch analysis from position: 52
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 59
Branch analysis from position: 57
Branch analysis from position: 59
Branch analysis from position: 45
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: 38
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
Branch analysis from position: 45
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 38
Branch analysis from position: 36
Branch analysis from position: 38
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
Branch analysis from position: 31
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 24
Branch analysis from position: 22
Branch analysis from position: 24
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 17
Branch analysis from position: 15
Branch analysis from position: 17
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 10
Branch analysis from position: 8
Branch analysis from position: 10
filename:       /in/aZnRI
function name:  (null)
number of ops:  92
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E > > JMPZ                                                     <false>, ->3
          1    >   QM_ASSIGN                                        ~0      'true'
          2      > JMP                                                      ->4
          3    >   QM_ASSIGN                                        ~0      'false'
          4    >   CONCAT                                           ~1      'Compare+two+non+numeric+strings%3A++++++++++%28%27str%27+%3D%3D+%270%27%29+%3D+', ~0
          5        CONCAT                                           ~2      ~1, '%0A'
          6        ECHO                                                     ~2
    4     7      > JMPZ                                                     <false>, ->10
          8    >   QM_ASSIGN                                        ~3      'true'
          9      > JMP                                                      ->11
         10    >   QM_ASSIGN                                        ~3      'false'
         11    >   CONCAT                                           ~4      'Compare+non+numeric+string+to+intteger+0%3A+%28%27str%27+%3D%3D+0%29+++%3D+', ~3
         12        CONCAT                                           ~5      ~4, '%0A'
         13        ECHO                                                     ~5
    6    14      > JMPZ                                                     <true>, ->17
         15    >   QM_ASSIGN                                        ~6      'true'
         16      > JMP                                                      ->18
         17    >   QM_ASSIGN                                        ~6      'false'
         18    >   CONCAT                                           ~7      'Compare+two+numeric+strings+%28same+senamtic%29%3A+%28%271e1%27+%3D%3D+%2710%27%29+%3D+', ~6
         19        CONCAT                                           ~8      ~7, '%0A'
         20        ECHO                                                     ~8
    7    21      > JMPZ                                                     <false>, ->24
         22    >   QM_ASSIGN                                        ~9      '+true'
         23      > JMP                                                      ->25
         24    >   QM_ASSIGN                                        ~9      'false'
         25    >   CONCAT                                           ~10     'Compare+two+numeric+strings+%28precision%29%3A+++++%28%270.9999999999999999%27+%3D%3D+%271%27%29++%3D+', ~9
         26        CONCAT                                           ~11     ~10, '%0A'
         27        ECHO                                                     ~11
    8    28      > JMPZ                                                     <false>, ->31
         29    >   QM_ASSIGN                                        ~12     'true'
         30      > JMP                                                      ->32
         31    >   QM_ASSIGN                                        ~12     'false'
         32    >   CONCAT                                           ~13     'Compare+two+numeric+strings+%28precision1%29%3A++++%28%270.99999999999999991%27+%3D%3D+%271%27%29+%3D+', ~12
         33        CONCAT                                           ~14     ~13, '%0A'
         34        ECHO                                                     ~14
    9    35      > JMPZ                                                     <false>, ->38
         36    >   QM_ASSIGN                                        ~15     'true'
         37      > JMP                                                      ->39
         38    >   QM_ASSIGN                                        ~15     'false'
         39    >   CONCAT                                           ~16     'Compare+two+numeric+strings+%28precision2%29%3A++++%28%270.99999999999999992%27+%3D%3D+%271%27%29+%3D+', ~15
         40        CONCAT                                           ~17     ~16, '%0A'
         41        ECHO                                                     ~17
   10    42      > JMPZ                                                     <false>, ->45
         43    >   QM_ASSIGN                                        ~18     'true'
         44      > JMP                                                      ->46
         45    >   QM_ASSIGN                                        ~18     'false'
         46    >   CONCAT                                           ~19     'Compare+two+numeric+strings+%28precision3%29%3A++++%28%270.99999999999999993%27+%3D%3D+%271%27%29+%3D+', ~18
         47        CONCAT                                           ~20     ~19, '%0A'
         48        ECHO                                                     ~20
   11    49      > JMPZ                                                     <false>, ->52
         50    >   QM_ASSIGN                                        ~21     'true'
         51      > JMP                                                      ->53
         52    >   QM_ASSIGN                                        ~21     'false'
         53    >   CONCAT                                           ~22     'Compare+two+numeric+strings+%28precision4%29%3A++++%28%270.99999999999999994%27+%3D%3D+%271%27%29+%3D+', ~21
         54        CONCAT                                           ~23     ~22, '%0A'
         55        ECHO                                                     ~23
   12    56      > JMPZ                                                     <true>, ->59
         57    >   QM_ASSIGN                                        ~24     'true'
         58      > JMP                                                      ->60
         59    >   QM_ASSIGN                                        ~24     'false'
         60    >   CONCAT                                           ~25     'Compare+two+numeric+strings+%28precision5%29%3A++++%28%270.99999999999999995%27+%3D%3D+%271%27%29+%3D+', ~24
         61        CONCAT                                           ~26     ~25, '%0A'
         62        ECHO                                                     ~26
   13    63      > JMPZ                                                     <true>, ->66
         64    >   QM_ASSIGN                                        ~27     'true'
         65      > JMP                                                      ->67
         66    >   QM_ASSIGN                                        ~27     'false'
         67    >   CONCAT                                           ~28     'Compare+two+numeric+strings+%28precision6%29%3A++++%28%270.99999999999999996%27+%3D%3D+%271%27%29+%3D+', ~27
         68        CONCAT                                           ~29     ~28, '%0A'
         69        ECHO                                                     ~29
   14    70      > JMPZ                                                     <true>, ->73
         71    >   QM_ASSIGN                                        ~30     'true'
         72      > JMP                                                      ->74
         73    >   QM_ASSIGN                                        ~30     'false'
         74    >   CONCAT                                           ~31     'Compare+two+numeric+strings+%28precision7%29%3A++++%28%270.99999999999999997%27+%3D%3D+%271%27%29+%3D+', ~30
         75        CONCAT                                           ~32     ~31, '%0A'
         76        ECHO                                                     ~32
   15    77      > JMPZ                                                     <true>, ->80
         78    >   QM_ASSIGN                                        ~33     'true'
         79      > JMP                                                      ->81
         80    >   QM_ASSIGN                                        ~33     'false'
         81    >   CONCAT                                           ~34     'Compare+two+numeric+strings+%28precision8%29%3A++++%28%270.99999999999999998%27+%3D%3D+%271%27%29+%3D+', ~33
         82        CONCAT                                           ~35     ~34, '%0A'
         83        ECHO                                                     ~35
   16    84      > JMPZ                                                     <true>, ->87
         85    >   QM_ASSIGN                                        ~36     'true'
         86      > JMP                                                      ->88
         87    >   QM_ASSIGN                                        ~36     'false'
         88    >   CONCAT                                           ~37     'Compare+two+numeric+strings+%28precision9%29%3A++++%28%270.99999999999999999%27+%3D%3D+%271%27%29+%3D+', ~36
         89        CONCAT                                           ~38     ~37, '%0A'
         90        ECHO                                                     ~38
         91      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.71 ms | 1407 KiB | 13 Q