internals2-php-opcodes-php-fetch-dim-func-arg-6

  • Opcode Descriptions and
    Examples
  • FETCH_DIM_FUNC_ARG

  • FETCH_DIM_FUNC_ARG
  • FETCH_DIM_FUNC_ARG

    FETCH_DIM_FUNC_ARG

    PHP code

    <?php
    /*
     * 
     * opcode number: 93
     */

    function foo(&$x)
    {
      print(
    $x);
    }

    $x = array(012345);
    $z "foo";

    $z($x[0]);

    ?>

    PHP opcodes

    Function name: (null)

    Compiled variables: !0=$x, !1=$z

    line # op fetch ext return operands
    7 0 NOP        
    12 1 INIT_ARRAY     ~0 0
      2 ADD_ARRAY_ELEMENT     ~0 1
      3 ADD_ARRAY_ELEMENT     ~0 2
      4 ADD_ARRAY_ELEMENT     ~0 3
      5 ADD_ARRAY_ELEMENT     ~0 4
      6 ADD_ARRAY_ELEMENT     ~0 5
      7 ASSIGN       !0,~0
    13 8 ASSIGN       !1,’foo’
    15 9 INIT_FCALL_BY_NAME       !1
      10 FETCH_DIM_FUNC_ARG     $3 !0,0
      11 SEND_VAR       $3
      12 DO_FCALL_BY_NAME   1    
    17 13 RETURN       1

    Function name: foo

    Compiled variables: !0=$x

    line # op fetch ext return operands
    7 0 RECV       1
    9 1 PRINT     ~0 !0
      2 FREE       ~0
    10 3 RETURN       null