3v4l.org

run code in 300+ PHP versions simultaneously
<?php class MyCache { private $cache = []; public function has($key) { echo "\nget: " . json_encode($key); return array_key_exists( $key, $this->cache ); } public function set($key, $val) { echo "\nset: " . json_encode($key); $this->cache[$key] = $val; } } $mc = new MyCache(); $mc->has(['x']); $mc->has([]); $mc->has(false); $mc->has(true); $mc->has(''); $mc->has(0); echo "\n"; $mc->set(['x'], 1); $mc->set([], 1); $mc->set(false, 1); $mc->set(true, 1); $mc->set('', 1); $mc->set(0, 1);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3Z0f7
function name:  (null)
number of ops:  47
compiled vars:  !0 = $mc
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   17     0  E >   NEW                                              $1      'MyCache'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $1
   18     3        INIT_METHOD_CALL                                         !0, 'has'
          4        SEND_VAL_EX                                              <array>
          5        DO_FCALL                                      0          
   19     6        INIT_METHOD_CALL                                         !0, 'has'
          7        SEND_VAL_EX                                              <array>
          8        DO_FCALL                                      0          
   20     9        INIT_METHOD_CALL                                         !0, 'has'
         10        SEND_VAL_EX                                              <false>
         11        DO_FCALL                                      0          
   21    12        INIT_METHOD_CALL                                         !0, 'has'
         13        SEND_VAL_EX                                              <true>
         14        DO_FCALL                                      0          
   22    15        INIT_METHOD_CALL                                         !0, 'has'
         16        SEND_VAL_EX                                              ''
         17        DO_FCALL                                      0          
   23    18        INIT_METHOD_CALL                                         !0, 'has'
         19        SEND_VAL_EX                                              0
         20        DO_FCALL                                      0          
   25    21        ECHO                                                     '%0A'
   27    22        INIT_METHOD_CALL                                         !0, 'set'
         23        SEND_VAL_EX                                              <array>
         24        SEND_VAL_EX                                              1
         25        DO_FCALL                                      0          
   28    26        INIT_METHOD_CALL                                         !0, 'set'
         27        SEND_VAL_EX                                              <array>
         28        SEND_VAL_EX                                              1
         29        DO_FCALL                                      0          
   29    30        INIT_METHOD_CALL                                         !0, 'set'
         31        SEND_VAL_EX                                              <false>
         32        SEND_VAL_EX                                              1
         33        DO_FCALL                                      0          
   30    34        INIT_METHOD_CALL                                         !0, 'set'
         35        SEND_VAL_EX                                              <true>
         36        SEND_VAL_EX                                              1
         37        DO_FCALL                                      0          
   31    38        INIT_METHOD_CALL                                         !0, 'set'
         39        SEND_VAL_EX                                              ''
         40        SEND_VAL_EX                                              1
         41        DO_FCALL                                      0          
   32    42        INIT_METHOD_CALL                                         !0, 'set'
         43        SEND_VAL_EX                                              0
         44        SEND_VAL_EX                                              1
         45        DO_FCALL                                      0          
         46      > RETURN                                                   1

Class MyCache:
Function has:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3Z0f7
function name:  has
number of ops:  10
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
    7     1        INIT_FCALL                                               'json_encode'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $1      
          4        CONCAT                                           ~2      '%0Aget%3A+', $1
          5        ECHO                                                     ~2
    8     6        FETCH_OBJ_R                                      ~3      'cache'
          7        ARRAY_KEY_EXISTS                                 ~4      !0, ~3
          8      > RETURN                                                   ~4
    9     9*     > RETURN                                                   null

End of function has

Function set:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3Z0f7
function name:  set
number of ops:  11
compiled vars:  !0 = $key, !1 = $val
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   12     2        INIT_FCALL                                               'json_encode'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $2      
          5        CONCAT                                           ~3      '%0Aset%3A+', $2
          6        ECHO                                                     ~3
   13     7        FETCH_OBJ_W                                      $4      'cache'
          8        ASSIGN_DIM                                               $4, !0
          9        OP_DATA                                                  !1
   14    10      > RETURN                                                   null

End of function set

End of class MyCache.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.58 ms | 1093 KiB | 14 Q