Internals2/opcodes/throw-Phpdoc专题

THROW

PHP code

<?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 opcodes

Function name: (null)

Compiled variables: !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

本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除