3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); $number = new \BcMath\Number(-1); $values = [ 0, '0.2', 0.2, new \BcMath\Number('0.2'), fopen('php://stdin', 'r'), new stdClass(), ]; $printBool = static fn (bool $b) => $b ? 'true' : 'false'; foreach ($values as $val) { printf("--------------\n%s\n--------------\n", print_r($val, true)); echo '<: ' . $printBool($number < $val) . "\n"; echo '<=: ' . $printBool($number <= $val) . "\n"; echo '>: ' . $printBool($number > $val) . "\n"; echo '>=: ' . $printBool($number >= $val) . "\n"; echo '==: ' . $printBool($number == $val) . "\n"; echo '!=: ' . $printBool($number != $val) . "\n"; echo '<=>: ' . ($number <=> $val) . "\n"; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 79
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 79
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 79
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 79
filename:       /in/K7THf
function name:  (null)
number of ops:  81
compiled vars:  !0 = $number, !1 = $values, !2 = $printBool, !3 = $val
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $4      'BcMath%5CNumber'
          1        SEND_VAL_EX                                              -1
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $4
    5     4        INIT_ARRAY                                       ~7      0
    6     5        ADD_ARRAY_ELEMENT                                ~7      '0.2'
    7     6        ADD_ARRAY_ELEMENT                                ~7      0.2
    8     7        NEW                                              $8      'BcMath%5CNumber'
          8        SEND_VAL_EX                                              '0.2'
          9        DO_FCALL                                      0          
         10        ADD_ARRAY_ELEMENT                                ~7      $8
    9    11        INIT_FCALL                                               'fopen'
         12        SEND_VAL                                                 'php%3A%2F%2Fstdin'
         13        SEND_VAL                                                 'r'
         14        DO_ICALL                                         $10     
         15        ADD_ARRAY_ELEMENT                                ~7      $10
   10    16        NEW                                              $11     'stdClass'
         17        DO_FCALL                                      0          
         18        ADD_ARRAY_ELEMENT                                ~7      $11
    4    19        ASSIGN                                                   !1, ~7
   13    20        DECLARE_LAMBDA_FUNCTION                          ~14     [0]
         21        ASSIGN                                                   !2, ~14
   15    22      > FE_RESET_R                                       $16     !1, ->79
         23    > > FE_FETCH_R                                               $16, !3, ->79
   16    24    >   INIT_FCALL                                               'printf'
         25        SEND_VAL                                                 '--------------%0A%25s%0A--------------%0A'
         26        INIT_FCALL                                               'print_r'
         27        SEND_VAR                                                 !3
         28        SEND_VAL                                                 <true>
         29        DO_ICALL                                         $17     
         30        SEND_VAR                                                 $17
         31        DO_ICALL                                                 
   17    32        INIT_DYNAMIC_CALL                                        !2
         33        IS_SMALLER                                       ~19     !0, !3
         34        SEND_VAL_EX                                              ~19
         35        DO_FCALL                                      0  $20     
         36        CONCAT                                           ~21     '%3C%3A+', $20
         37        CONCAT                                           ~22     ~21, '%0A'
         38        ECHO                                                     ~22
   18    39        INIT_DYNAMIC_CALL                                        !2
         40        IS_SMALLER_OR_EQUAL                              ~23     !0, !3
         41        SEND_VAL_EX                                              ~23
         42        DO_FCALL                                      0  $24     
         43        CONCAT                                           ~25     '%3C%3D%3A+', $24
         44        CONCAT                                           ~26     ~25, '%0A'
         45        ECHO                                                     ~26
   19    46        INIT_DYNAMIC_CALL                                        !2
         47        IS_SMALLER                                       ~27     !3, !0
         48        SEND_VAL_EX                                              ~27
         49        DO_FCALL                                      0  $28     
         50        CONCAT                                           ~29     '%3E%3A+', $28
         51        CONCAT                                           ~30     ~29, '%0A'
         52        ECHO                                                     ~30
   20    53        INIT_DYNAMIC_CALL                                        !2
         54        IS_SMALLER_OR_EQUAL                              ~31     !3, !0
         55        SEND_VAL_EX                                              ~31
         56        DO_FCALL                                      0  $32     
         57        CONCAT                                           ~33     '%3E%3D%3A+', $32
         58        CONCAT                                           ~34     ~33, '%0A'
         59        ECHO                                                     ~34
   21    60        INIT_DYNAMIC_CALL                                        !2
         61        IS_EQUAL                                         ~35     !0, !3
         62        SEND_VAL_EX                                              ~35
         63        DO_FCALL                                      0  $36     
         64        CONCAT                                           ~37     '%3D%3D%3A+', $36
         65        CONCAT                                           ~38     ~37, '%0A'
         66        ECHO                                                     ~38
   22    67        INIT_DYNAMIC_CALL                                        !2
         68        IS_NOT_EQUAL                                     ~39     !0, !3
         69        SEND_VAL_EX                                              ~39
         70        DO_FCALL                                      0  $40     
         71        CONCAT                                           ~41     '%21%3D%3A+', $40
         72        CONCAT                                           ~42     ~41, '%0A'
         73        ECHO                                                     ~42
   23    74        SPACESHIP                                        ~43     !0, !3
         75        CONCAT                                           ~44     '%3C%3D%3E%3A+', ~43
         76        CONCAT                                           ~45     ~44, '%0A'
         77        ECHO                                                     ~45
   15    78      > JMP                                                      ->23
         79    >   FE_FREE                                                  $16
   24    80      > RETURN                                                   1


Dynamic Functions:
Dynamic Function 0
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
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/K7THf
function name:  {closure}
number of ops:  7
compiled vars:  !0 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   RECV                                             !0      
          1      > JMPZ                                                     !0, ->4
          2    >   QM_ASSIGN                                        ~1      'true'
          3      > JMP                                                      ->5
          4    >   QM_ASSIGN                                        ~1      'false'
          5    > > RETURN                                                   ~1
          6*     > RETURN                                                   null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
138.48 ms | 1011 KiB | 16 Q