internals2-php-opcodes-php-fetch-obj-w-0

  • Opcode Descriptions and
    Examples
  • FETCH_OBJ_W

  • FETCH_OBJ_W
  • FETCH_OBJ_W

    FETCH_OBJ_W

    PHP code

    <?php
    /*
     * Fetch an object from the property of this object and write to the property of the fectched object.
     * opcode number: 85
     */
    $foo = new stdclass;
    $foo->bar = new stdclass;
    $foo->bar->baz 'quix';
    ?>

    PHP opcodes

    Function name: (null)

    Compiled variables: !0 = $foo

    line # op fetch ext return operands
    6 0 ZEND_FETCH_CLASS   4 :0 ‘stdclass’
      1 NEW       :0
      2 DO_FCALL_BY_NAME   0    
      3 ASSIGN       !0
    7 4 ZEND_FETCH_CLASS   4 :5 ‘stdclass’
      5 NEW       :5
      6 DO_FCALL_BY_NAME   0    
      7 ZEND_ASSIGN_OBJ       !0, ‘bar’
      8 ZEND_OP_DATA        
    8 9 FETCH_OBJ_W       !0, ‘bar’
      10 ZEND_ASSIGN_OBJ       ‘baz’
      11 ZEND_OP_DATA       ‘quix’
    9 12 RETURN       1