THROW
UNSET_DIM
Opcodes
PHP Manual

## TICKS

## PHP code

`<?php
/*
*
* opcode number: 105
*/
// A function that records the time when it is called
function profile()
{
echo "profile function is called\n";
}
// Set up a tick handler
register_tick_function("profile");
// Initialize the function before the declare block
profile();
// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
for ($x = 0; $x < 10; ++$x) {
echo "hello world\n";
}
}
?>`

## PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
--- | --- | --- | --- | --- | --- | ---
7 | 0 | NOP |  |  |  |
13 | 1 | SEND_VAL |  |  |  | 'profile'
| 2 | DO_FCALL |  | 1 |  | 'register_tick_function'
16 | 3 | DO_FCALL |  | 0 |  | 'profile'
20 | 4 | ASSIGN |  |  |  | !0,0
| 5 | IS_SMALLER |  |  | ~3 | !0,10
| 6 | JMPZNZ |  | 9 |  | ~3,->13
| 7 | PRE_INC |  |  |  | !0
| 8 | JMP |  |  |  | ->5
21 | 9 | ECHO |  |  |  | 'hello+world%0A'
| 10 | TICKS |  |  |  | 2
22 | 11 | TICKS |  |  |  | 2
| 12 | JMP |  |  |  | ->7
| 13 | TICKS |  |  |  | 2
23 | 14 | TICKS |  |  |  | 2
24 | 15 | RETURN |  |  |  | 1

Function name: profile

Compiled variables: none

line | # | op | fetch | ext | return | operands
--- | --- | --- | --- | --- | --- | ---
9 | 0 | ECHO |  |  |  | 'profile+function+is+called%0A'
10 | 1 | RETURN |  |  |  | null

THROW
UNSET_DIM
Opcodes
PHP Manual