INIT_METHOD_CALL

PHP code

<?php
/*
 * Prepare for a method call.  Followed by DO_FCALL.
 * opcode number: 112
 */
class {
  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
关注编程学问公众号