Opcode
PHP Manual

RAISE_ABSTRACT_ERROR

PHP 代码

<?php
/*
 * 
 * Opcode 编号: 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 Opcode

函数名: (null)

编译后的变量: !0=$t2, !1=$t

行号#操作 读取扩展返回 操作数
70 NOP      
111 NOP      
 2 NOP      
173 ZEND_FETCH_CLASS   :3 'pass'
 4 NEW   $4 :3
 5 DO_FCALL_BY_NAME  0   
 6 ASSIGN     !0,$4
187 ZEND_INIT_METHOD_CALL     !0,'show'
 8 DO_FCALL_BY_NAME  0   
209 ZEND_FETCH_CLASS   :9 'fail'
 10 NEW   $10 :9
 11 DO_FCALL_BY_NAME  0   
 12 ASSIGN     !1,$10
2113 ZEND_INIT_METHOD_CALL     !1,'show'
 14 DO_FCALL_BY_NAME  0   
2315 ECHO     'Done%0A'
2416 RETURN     1

函数名: show

编译后的变量: none

行号#操作 读取扩展返回 操作数
80 ZEND_RAISE_ABSTRACT_ERROR      
 1 RETURN     null

函数名: show

编译后的变量: none

行号#操作 读取扩展返回 操作数
130 ECHO     'Call+to+function+show%28%29%0A'
141 RETURN     null

Opcode
PHP Manual