Since PHP-7.1 catch blocks are addressed with relative byte difference between two catch blocks as opposed to absolute opcode number
return 1;
}
- catch = cur->extended_value;
+ catch += cur->extended_value / sizeof(zend_op);
} while (!cur->result.num);
return 0;
00017: } catch (\Exception $e) {
00018: var_dump($e);
prompt> frame #0: {closure}() at %s:16
-frame #1: {main} at %s:20
+frame #1: {main} at %s:22
prompt> 3
prompt> [Uncaught Error in %s on line 16]
Error: Call to undefined function foo() in %s:16
Stack trace:
-#0 %s(20): {closure}()
+#0 %s(22): {closure}()
#1 {main}
[Script ended normally]
prompt>
foo(); // Error
} catch (\Exception $e) {
var_dump($e);
+ } catch (\ParseError $e) {
+ var_dump($e);
}
})();