Php/docs/internals2.opcodes.init-method-call
来自菜鸟教程
INIT_METHOD_CALL
PHP code
<?php/* * Prepare for a method call. Followed by DO_FCALL. * opcode number: 112 */class A { 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 |