3v4l.org

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