internals2-php-opcodes-php-init-method-call-4

  • Opcode Descriptions and
    Examples
  • INIT_METHOD_CALL

  • INIT_METHOD_CALL
  • INIT_METHOD_CALL

    INIT_METHOD_CALL

    PHP code

    <?php
    /*
     * Prepare for a method call.  Followed by DO_FCALL.
     * opcode number: 112
     */
    class {
      var 
    $num;
        function 
    incrementNum(){
        
    $num++;
      }
    }

    $obj = new A();
    $obj->incrementNum();

    ?>

    PHP opcodes

    Function name: (null)

    Compiled variables: !0=$obj

    line # op fetch ext return operands
    6 0 NOP        
    13 1 ZEND_FETCH_CLASS     :1 ‘A’
      2 NEW     $2 :1
      3 DO_FCALL_BY_NAME   0    
      4 ASSIGN       !0,$2
    14 5 ZEND_INIT_METHOD_CALL       !0,’incrementNum’
      6 DO_FCALL_BY_NAME   0    
    16 7 RETURN       1

    Function name: incrementNum

    Compiled variables: !0=$num

    line # op fetch ext return operands
    9 0 POST_INC     ~0 !0
      1 FREE       ~0
    10 2 RETURN       null