SWITCH_FREE
TICKS
オペコードの説明とサンプル
PHP Manual

## THROW

## PHP コード

`<?php
/*
*
* opcode number: 108
*/
try {
$error = 'Always throw this error';
throw new Exception($error);
// Code following an exception is not executed.
echo 'Never executed';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>`

## PHP オペコード

関数名: (null)

コンパイルされた変数: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
--- | --- | --- | --- | --- | --- | ---
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
| 2 | NEW |  |  | $2 | :1
| 3 | SEND_VAR |  |  |  | !0
| 4 | DO_FCALL_BY_NAME |  | 1 |  |
| 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
| 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
| 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
| 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
| 12 | DO_FCALL_BY_NAME |  | 0 |  |
| 13 | ECHO |  |  |  | $6
| 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1

SWITCH_FREE
TICKS
オペコードの説明とサンプル
PHP Manual