3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.33 ms | 1407 KiB | 13 Q