Opcode
PHP Manual

TICKS

PHP 代码

<?php
/*
 * 
 * Opcode 编号: 105
 */
// 被调用时记录时间的函数
function profile()
{
   echo 
"profile function is called\n";
}

// 创建一个 tick 处理器
register_tick_function("profile");

// 在定义块之前初始化函数
profile();

// 运行代码块,每 2 次 tick 调用一次处理器
declare(ticks=2) {
   for (
$x 0$x 10; ++$x) {
         echo 
"hello world\n";
   }
}
?>

PHP Opcode

函数名: (null)

编译后的变量: !0=$x

行号#操作 读取扩展返回 操作数
70 NOP      
131 SEND_VAL     'profile'
 2 DO_FCALL  1  'register_tick_function'
163 DO_FCALL  0  'profile'
204 ASSIGN     !0,0
 5 IS_SMALLER   ~3 !0,10
 6 JMPZNZ  9  ~3,->13
 7 PRE_INC     !0
 8 JMP     ->5
219 ECHO     'hello+world%0A'
 10 TICKS     2
2211 TICKS     2
 12 JMP     ->7
 13 TICKS     2
2314 TICKS     2
2415 RETURN     1

函数名: profile

编译后的变量: none

行号#操作 读取扩展返回 操作数
90 ECHO     'profile+function+is+called%0A'
101 RETURN     null

Opcode
PHP Manual