Php/docs/internals2.opcodes.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 |