3v4l.org

run code in 300+ PHP versions simultaneously
<?php $var11 = '12345'; $var12 = '22b'; $var13 = '12345x'; $var14 = '22'; $var15 = 12345; $var16 = 22; $var17 = '22c'; $var18 = '22a'; $var19 = '12345m'; $var20 = '12345z'; say("string comparisons:"); comparevar('var11 and var12', $var11, $var12); say("one numeric string, one string, make string comparisons:"); comparevar('var13 and var14', $var13, $var14); say("two numeric strings make numeric comparisons:"); comparevar('var11 and var14', $var11, $var14); say("two strings make string comparisons:"); comparevar('var12 and var13', $var12, $var13); say("two numbers make numeric comparisons:"); comparevar('var15 and var16', $var15, $var16); say("one numeric string, one number, make numeric comparisons:"); comparevar('var11 and var14', $var11, $var14); comparevar('var15 and var16', $var15, $var16); comparevar('var11 and var15', $var11, $var15); comparevar('var16 and var14', $var16, $var14); say("one string, one number, make numeric comparisons:"); comparevar('var13 and var15', $var13, $var15); comparevar('var12 and var16', $var12, $var16); comparevar('var13 and var16', $var13, $var16); comparevar('var15 and var12', $var15, $var12); say("and then some weirdness"); comparevar('var13 and var14', $var13, $var14); comparevar('var13 and var16', $var13, $var16); comparevar('var14 and var16', $var14, $var16); comparevar('var17 and var16', $var17, $var16); comparevar('var18 and var16', $var18, $var16); comparevar('var17 and var18', $var17, $var18); function comparevar($tag, $arg1, $arg2) { echo("$tag: "); if ($arg1 === $arg2) { say("$arg1 === $arg2"); } if ($arg1 == $arg2) { say("$arg1 == $arg2"); } if ($arg1 < $arg2) { say("$arg1 < $arg2"); } if ($arg1 > $arg2) { say("$arg1 > $arg2"); } if (((! ($arg1 < $arg2)) != ($arg1 > $arg2)) and ($arg1 != $arg2)) {say("screwy 1");} if (((! ($arg1 < $arg2)) != ($arg2 < $arg1)) and ($arg1 != $arg2)) {say("screwy 2");} } function say($str) { echo $str, "\n"; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/NhXEb
function name:  (null)
number of ops:  130
compiled vars:  !0 = $var11, !1 = $var12, !2 = $var13, !3 = $var14, !4 = $var15, !5 = $var16, !6 = $var17, !7 = $var18, !8 = $var19, !9 = $var20
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, '12345'
    5     1        ASSIGN                                                   !1, '22b'
    6     2        ASSIGN                                                   !2, '12345x'
    7     3        ASSIGN                                                   !3, '22'
    8     4        ASSIGN                                                   !4, 12345
    9     5        ASSIGN                                                   !5, 22
   10     6        ASSIGN                                                   !6, '22c'
   11     7        ASSIGN                                                   !7, '22a'
   12     8        ASSIGN                                                   !8, '12345m'
   13     9        ASSIGN                                                   !9, '12345z'
   15    10        INIT_FCALL_BY_NAME                                       'say'
         11        SEND_VAL_EX                                              'string+comparisons%3A'
         12        DO_FCALL                                      0          
   16    13        INIT_FCALL_BY_NAME                                       'comparevar'
         14        SEND_VAL_EX                                              'var11+and+var12'
         15        SEND_VAR_EX                                              !0
         16        SEND_VAR_EX                                              !1
         17        DO_FCALL                                      0          
   18    18        INIT_FCALL_BY_NAME                                       'say'
         19        SEND_VAL_EX                                              'one+numeric+string%2C+one+string%2C+make+string+comparisons%3A'
         20        DO_FCALL                                      0          
   19    21        INIT_FCALL_BY_NAME                                       'comparevar'
         22        SEND_VAL_EX                                              'var13+and+var14'
         23        SEND_VAR_EX                                              !2
         24        SEND_VAR_EX                                              !3
         25        DO_FCALL                                      0          
   21    26        INIT_FCALL_BY_NAME                                       'say'
         27        SEND_VAL_EX                                              'two+numeric+strings+make+numeric+comparisons%3A'
         28        DO_FCALL                                      0          
   22    29        INIT_FCALL_BY_NAME                                       'comparevar'
         30        SEND_VAL_EX                                              'var11+and+var14'
         31        SEND_VAR_EX                                              !0
         32        SEND_VAR_EX                                              !3
         33        DO_FCALL                                      0          
   25    34        INIT_FCALL_BY_NAME                                       'say'
         35        SEND_VAL_EX                                              'two+strings+make+string+comparisons%3A'
         36        DO_FCALL                                      0          
   26    37        INIT_FCALL_BY_NAME                                       'comparevar'
         38        SEND_VAL_EX                                              'var12+and+var13'
         39        SEND_VAR_EX                                              !1
         40        SEND_VAR_EX                                              !2
         41        DO_FCALL                                      0          
   30    42        INIT_FCALL_BY_NAME                                       'say'
         43        SEND_VAL_EX                                              'two+numbers+make+numeric+comparisons%3A'
         44        DO_FCALL                                      0          
   31    45        INIT_FCALL_BY_NAME                                       'comparevar'
         46        SEND_VAL_EX                                              'var15+and+var16'
         47        SEND_VAR_EX                                              !4
         48        SEND_VAR_EX                                              !5
         49        DO_FCALL                                      0          
   35    50        INIT_FCALL_BY_NAME                                       'say'
         51        SEND_VAL_EX                                              'one+numeric+string%2C+one+number%2C+make+numeric+comparisons%3A'
         52        DO_FCALL                                      0          
   36    53        INIT_FCALL_BY_NAME                                       'comparevar'
         54        SEND_VAL_EX                                              'var11+and+var14'
         55        SEND_VAR_EX                                              !0
         56        SEND_VAR_EX                                              !3
         57        DO_FCALL                                      0          
   37    58        INIT_FCALL_BY_NAME                                       'comparevar'
         59        SEND_VAL_EX                                              'var15+and+var16'
         60        SEND_VAR_EX                                              !4
         61        SEND_VAR_EX                                              !5
         62        DO_FCALL                                      0          
   38    63        INIT_FCALL_BY_NAME                                       'comparevar'
         64        SEND_VAL_EX                                              'var11+and+var15'
         65        SEND_VAR_EX                                              !0
         66        SEND_VAR_EX                                              !4
         67        DO_FCALL                                      0          
   39    68        INIT_FCALL_BY_NAME                                       'comparevar'
         69        SEND_VAL_EX                                              'var16+and+var14'
         70        SEND_VAR_EX                                              !5
         71        SEND_VAR_EX                                              !3
         72        DO_FCALL                                      0          
   41    73        INIT_FCALL_BY_NAME                                       'say'
         74        SEND_VAL_EX                                              'one+string%2C+one+number%2C+make+numeric+comparisons%3A'
         75        DO_FCALL                                      0          
   42    76        INIT_FCALL_BY_NAME                                       'comparevar'
         77        SEND_VAL_EX                                              'var13+and+var15'
         78        SEND_VAR_EX                                              !2
         79        SEND_VAR_EX                                              !4
         80        DO_FCALL                                      0          
   43    81        INIT_FCALL_BY_NAME                                       'comparevar'
         82        SEND_VAL_EX                                              'var12+and+var16'
         83        SEND_VAR_EX                                              !1
         84        SEND_VAR_EX                                              !5
         85        DO_FCALL                                      0          
   44    86        INIT_FCALL_BY_NAME                                       'comparevar'
         87        SEND_VAL_EX                                              'var13+and+var16'
         88        SEND_VAR_EX                                              !2
         89        SEND_VAR_EX                                              !5
         90        DO_FCALL                                      0          
   45    91        INIT_FCALL_BY_NAME                                       'comparevar'
         92        SEND_VAL_EX                                              'var15+and+var12'
         93        SEND_VAR_EX                                              !4
         94        SEND_VAR_EX                                              !1
         95        DO_FCALL                                      0          
   47    96        INIT_FCALL_BY_NAME                                       'say'
         97        SEND_VAL_EX                                              'and+then+some+weirdness'
         98        DO_FCALL                                      0          
   48    99        INIT_FCALL_BY_NAME                                       'comparevar'
        100        SEND_VAL_EX                                              'var13+and+var14'
        101        SEND_VAR_EX                                              !2
        102        SEND_VAR_EX                                              !3
        103        DO_FCALL                                      0          
   49   104        INIT_FCALL_BY_NAME                                       'comparevar'
        105        SEND_VAL_EX                                              'var13+and+var16'
        106        SEND_VAR_EX                                              !2
        107        SEND_VAR_EX                                              !5
        108        DO_FCALL                                      0          
   50   109        INIT_FCALL_BY_NAME                                       'comparevar'
        110        SEND_VAL_EX                                              'var14+and+var16'
        111        SEND_VAR_EX                                              !3
        112        SEND_VAR_EX                                              !5
        113        DO_FCALL                                      0          
   52   114        INIT_FCALL_BY_NAME                                       'comparevar'
        115        SEND_VAL_EX                                              'var17+and+var16'
        116        SEND_VAR_EX                                              !6
        117        SEND_VAR_EX                                              !5
        118        DO_FCALL                                      0          
   53   119        INIT_FCALL_BY_NAME                                       'comparevar'
        120        SEND_VAL_EX                                              'var18+and+var16'
        121        SEND_VAR_EX                                              !7
        122        SEND_VAR_EX                                              !5
        123        DO_FCALL                                      0          
   54   124        INIT_FCALL_BY_NAME                                       'comparevar'
        125        SEND_VAL_EX                                              'var17+and+var18'
        126        SEND_VAR_EX                                              !6
        127        SEND_VAR_EX                                              !7
        128        DO_FCALL                                      0          
   69   129      > RETURN                                                   1

Function comparevar:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 14
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 22
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 30
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 38
Branch analysis from position: 32
2 jumps found. (Code = 46) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 46, Position 2 = 49
Branch analysis from position: 46
2 jumps found. (Code = 46) Position 1 = 54, Position 2 = 56
Branch analysis from position: 54
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 60
Branch analysis from position: 57
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
Branch analysis from position: 56
Branch analysis from position: 49
Branch analysis from position: 45
Branch analysis from position: 38
Branch analysis from position: 30
Branch analysis from position: 22
Branch analysis from position: 14
filename:       /in/NhXEb
function name:  comparevar
number of ops:  61
compiled vars:  !0 = $tag, !1 = $arg1, !2 = $arg2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   56     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   58     3        NOP                                                      
          4        FAST_CONCAT                                      ~3      !0, '%3A+'
          5        ECHO                                                     ~3
   59     6        IS_IDENTICAL                                             !1, !2
          7      > JMPZ                                                     ~4, ->14
          8    >   INIT_FCALL_BY_NAME                                       'say'
          9        ROPE_INIT                                     3  ~6      !1
         10        ROPE_ADD                                      1  ~6      ~6, '+%3D%3D%3D+'
         11        ROPE_END                                      2  ~5      ~6, !2
         12        SEND_VAL_EX                                              ~5
         13        DO_FCALL                                      0          
   60    14    >   IS_EQUAL                                                 !1, !2
         15      > JMPZ                                                     ~9, ->22
         16    >   INIT_FCALL_BY_NAME                                       'say'
         17        ROPE_INIT                                     3  ~11     !1
         18        ROPE_ADD                                      1  ~11     ~11, '+%3D%3D+'
         19        ROPE_END                                      2  ~10     ~11, !2
         20        SEND_VAL_EX                                              ~10
         21        DO_FCALL                                      0          
   61    22    >   IS_SMALLER                                               !1, !2
         23      > JMPZ                                                     ~14, ->30
         24    >   INIT_FCALL_BY_NAME                                       'say'
         25        ROPE_INIT                                     3  ~16     !1
         26        ROPE_ADD                                      1  ~16     ~16, '+%3C+'
         27        ROPE_END                                      2  ~15     ~16, !2
         28        SEND_VAL_EX                                              ~15
         29        DO_FCALL                                      0          
   62    30    >   IS_SMALLER                                               !2, !1
         31      > JMPZ                                                     ~19, ->38
         32    >   INIT_FCALL_BY_NAME                                       'say'
         33        ROPE_INIT                                     3  ~21     !1
         34        ROPE_ADD                                      1  ~21     ~21, '+%3E+'
         35        ROPE_END                                      2  ~20     ~21, !2
         36        SEND_VAL_EX                                              ~20
         37        DO_FCALL                                      0          
   65    38    >   IS_SMALLER                                       ~24     !1, !2
         39        BOOL_NOT                                         ~25     ~24
         40        IS_SMALLER                                       ~26     !2, !1
         41        IS_NOT_EQUAL                                     ~27     ~25, ~26
         42      > JMPZ_EX                                          ~27     ~27, ->45
         43    >   IS_NOT_EQUAL                                     ~28     !1, !2
         44        BOOL                                             ~27     ~28
         45    > > JMPZ                                                     ~27, ->49
         46    >   INIT_FCALL_BY_NAME                                       'say'
         47        SEND_VAL_EX                                              'screwy+1'
         48        DO_FCALL                                      0          
   66    49    >   IS_SMALLER                                       ~30     !1, !2
         50        BOOL_NOT                                         ~31     ~30
         51        IS_SMALLER                                       ~32     !2, !1
         52        IS_NOT_EQUAL                                     ~33     ~31, ~32
         53      > JMPZ_EX                                          ~33     ~33, ->56
         54    >   IS_NOT_EQUAL                                     ~34     !1, !2
         55        BOOL                                             ~33     ~34
         56    > > JMPZ                                                     ~33, ->60
         57    >   INIT_FCALL_BY_NAME                                       'say'
         58        SEND_VAL_EX                                              'screwy+2'
         59        DO_FCALL                                      0          
   67    60    > > RETURN                                                   null

End of function comparevar

Function say:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/NhXEb
function name:  say
number of ops:  4
compiled vars:  !0 = $str
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   69     0  E >   RECV                                             !0      
          1        ECHO                                                     !0
          2        ECHO                                                     '%0A'
          3      > RETURN                                                   null

End of function say

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.44 ms | 1411 KiB | 13 Q