FETCH_DIM_FUNC_ARG

PHP code

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

function foo(&$x)
{
  print(
$x);
}

$x = array(012345);
$z "foo";

$z($x[0]);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$z

line # op fetch ext return operands
7 0 NOP        
12 1 INIT_ARRAY     ~0 0
  2 ADD_ARRAY_ELEMENT     ~0 1
  3 ADD_ARRAY_ELEMENT     ~0 2
  4 ADD_ARRAY_ELEMENT     ~0 3
  5 ADD_ARRAY_ELEMENT     ~0 4
  6 ADD_ARRAY_ELEMENT     ~0 5
  7 ASSIGN       !0,~0
13 8 ASSIGN       !1,'foo'
15 9 INIT_FCALL_BY_NAME       !1
  10 FETCH_DIM_FUNC_ARG     $3 !0,0
  11 SEND_VAR       $3
  12 DO_FCALL_BY_NAME   1    
17 13 RETURN       1

Function name: foo

Compiled variables: !0=$x

line # op fetch ext return operands
7 0 RECV       1
9 1 PRINT     ~0 !0
  2 FREE       ~0
10 3 RETURN       null
关注编程学问公众号