3v4l.org

run code in 500+ PHP versions simultaneously
<?php $data = []; $data['x'] = ['x_v']; $data['y'] = ['y_v']; $gen = new \ArrayIterator($data); var_dump($gen->valid()); var_dump($gen->current()); $filterFx = function ($row) { return count($row) !== false; // always true }; $genOrig = $gen; $gen = new \CallbackFilterIterator($gen, $filterFx); $genOrig->next(); // has correctly no effect // $gen->rewind(); // must be called, iterator is not initialized by default var_dump($gen->valid()); var_dump($gen->current()); var_dump($gen->valid()); var_dump($gen->next());
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/trdBX
function name:  (null)
number of ops:  50
compiled vars:  !0 = $data, !1 = $gen, !2 = $filterFx, !3 = $genOrig
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
    4     1        ASSIGN_DIM                                                   !0, 'x'
          2        OP_DATA                                                      <array>
    5     3        ASSIGN_DIM                                                   !0, 'y'
          4        OP_DATA                                                      <array>
    7     5        NEW                                                  $7      'ArrayIterator'
          6        SEND_VAR_EX                                                  !0
          7        DO_FCALL                                          0          
          8        ASSIGN                                                       !1, $7
    9     9        INIT_FCALL                                                   'var_dump'
         10        INIT_METHOD_CALL                                             !1, 'valid'
         11        DO_FCALL                                          0  $10     
         12        SEND_VAR                                                     $10
         13        DO_ICALL                                                     
   10    14        INIT_FCALL                                                   'var_dump'
         15        INIT_METHOD_CALL                                             !1, 'current'
         16        DO_FCALL                                          0  $12     
         17        SEND_VAR                                                     $12
         18        DO_ICALL                                                     
   12    19        DECLARE_LAMBDA_FUNCTION                              ~14     [0]
         20        ASSIGN                                                       !2, ~14
   15    21        ASSIGN                                                       !3, !1
   16    22        NEW                                                  $17     'CallbackFilterIterator'
         23        SEND_VAR_EX                                                  !1
         24        SEND_VAR_EX                                                  !2
         25        DO_FCALL                                          0          
         26        ASSIGN                                                       !1, $17
   18    27        INIT_METHOD_CALL                                             !3, 'next'
         28        DO_FCALL                                          0          
   21    29        INIT_FCALL                                                   'var_dump'
         30        INIT_METHOD_CALL                                             !1, 'valid'
         31        DO_FCALL                                          0  $21     
         32        SEND_VAR                                                     $21
         33        DO_ICALL                                                     
   22    34        INIT_FCALL                                                   'var_dump'
         35        INIT_METHOD_CALL                                             !1, 'current'
         36        DO_FCALL                                          0  $23     
         37        SEND_VAR                                                     $23
         38        DO_ICALL                                                     
   23    39        INIT_FCALL                                                   'var_dump'
         40        INIT_METHOD_CALL                                             !1, 'valid'
         41        DO_FCALL                                          0  $25     
         42        SEND_VAR                                                     $25
         43        DO_ICALL                                                     
   24    44        INIT_FCALL                                                   'var_dump'
         45        INIT_METHOD_CALL                                             !1, 'next'
         46        DO_FCALL                                          0  $27     
         47        SEND_VAR                                                     $27
         48        DO_ICALL                                                     
         49      > RETURN                                                       1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/trdBX
function name:  {closure:/in/trdBX:12}
number of ops:  5
compiled vars:  !0 = $row
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   12     0  E >   RECV                                                 !0      
   13     1        COUNT                                                ~1      !0
          2        TYPE_CHECK                                      1018  ~2      ~1
          3      > RETURN                                                       ~2
   14     4*     > RETURN                                                       null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
127.29 ms | 482 KiB | 8 Q