3v4l.org

run code in 500+ PHP versions simultaneously
<?php /* TL;DR list($key, $callback) = each($callbacks); can be replaced with $key = key($callbacks); $callback = current($callbacks); next($callbacks); */ /* Original example */ $callbacks = [ 'key1' => 'value1', 'key2' => 'value2', ]; list($key, $callback) = each($callbacks); var_dump($key, $callback); // Verify which value $callbacks point to after each() has advanced the internal array pointer var_dump(current($callbacks)); /* Replacement example */ $callbacks = [ 'key1' => 'value1', 'key2' => 'value2', ]; $key = key($callbacks); $callback = current($callbacks); next($callbacks); var_dump($key, $callback); // Verify which value $callbacks point to after next() has advanced the internal array pointer var_dump(current($callbacks));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/DWYMt
function name:  (null)
number of ops:  42
compiled vars:  !0 = $callbacks, !1 = $key, !2 = $callback
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   ASSIGN                                                       !0, <array>
   19     1        INIT_FCALL_BY_NAME                                           'each'
          2        SEND_VAR_EX                                                  !0
          3        DO_FCALL                                          0  $4      
          4        FETCH_LIST_R                                         $5      $4, 0
          5        ASSIGN                                                       !1, $5
          6        FETCH_LIST_R                                         $7      $4, 1
          7        ASSIGN                                                       !2, $7
          8        FREE                                                         $4
   20     9        INIT_FCALL                                                   'var_dump'
         10        SEND_VAR                                                     !1
         11        SEND_VAR                                                     !2
         12        DO_ICALL                                                     
   23    13        INIT_FCALL                                                   'var_dump'
         14        INIT_FCALL                                                   'current'
         15        SEND_VAR                                                     !0
         16        DO_ICALL                                             $10     
         17        SEND_VAR                                                     $10
         18        DO_ICALL                                                     
   26    19        ASSIGN                                                       !0, <array>
   32    20        INIT_FCALL                                                   'key'
         21        SEND_VAR                                                     !0
         22        DO_ICALL                                             $13     
         23        ASSIGN                                                       !1, $13
   33    24        INIT_FCALL                                                   'current'
         25        SEND_VAR                                                     !0
         26        DO_ICALL                                             $15     
         27        ASSIGN                                                       !2, $15
   34    28        INIT_FCALL                                                   'next'
         29        SEND_REF                                                     !0
         30        DO_ICALL                                                     
   36    31        INIT_FCALL                                                   'var_dump'
         32        SEND_VAR                                                     !1
         33        SEND_VAR                                                     !2
         34        DO_ICALL                                                     
   39    35        INIT_FCALL                                                   'var_dump'
         36        INIT_FCALL                                                   'current'
         37        SEND_VAR                                                     !0
         38        DO_ICALL                                             $19     
         39        SEND_VAR                                                     $19
         40        DO_ICALL                                                     
         41      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
158.83 ms | 2181 KiB | 17 Q