internals2-php-opcodes-php-raise-abstract-error-5

  • Opcode Descriptions and
    Examples
  • RAISE_ABSTRACT_ERROR

  • RAISE_ABSTRACT_ERROR
  • RAISE_ABSTRACT_ERROR

    RAISE_ABSTRACT_ERROR

    PHP code

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

    abstract class fail {
        abstract function 
    show();
    }

    class pass extends fail {
        function 
    show() {
            echo 
    "Call to function show()\n";
        }
    }

    $t2 = new pass();
    $t2->show();

    $t = new fail();
    $t->show();

    echo "Done\n"// shouldn't be displayed
    ?>

    PHP opcodes

    Function name: (null)

    Compiled variables: !0=$t2, !1=$t

    line # op fetch ext return operands
    7 0 NOP        
    11 1 NOP        
      2 NOP        
    17 3 ZEND_FETCH_CLASS     :3 ‘pass’
      4 NEW     $4 :3
      5 DO_FCALL_BY_NAME   0    
      6 ASSIGN       !0,$4
    18 7 ZEND_INIT_METHOD_CALL       !0,’show’
      8 DO_FCALL_BY_NAME   0    
    20 9 ZEND_FETCH_CLASS     :9 ‘fail’
      10 NEW     $10 :9
      11 DO_FCALL_BY_NAME   0    
      12 ASSIGN       !1,$10
    21 13 ZEND_INIT_METHOD_CALL       !1,’show’
      14 DO_FCALL_BY_NAME   0    
    23 15 ECHO       ‘Done%0A’
    24 16 RETURN       1

    Function name: show

    Compiled variables: none

    line # op fetch ext return operands
    8 0 ZEND_RAISE_ABSTRACT_ERROR        
      1 RETURN       null

    Function name: show

    Compiled variables: none

    line # op fetch ext return operands
    13 0 ECHO       ‘Call+to+function+show%28%29%0A’
    14 1 RETURN       null