throw Is An Expression¶
throw was a standalone expression: it needed to be alone, between semicolons (or equivalents).
Since PHP 8.0, throw may be included in another expression. This is useful with or, or the coalesce operator, to execute the expression when a value is missing or failing.
PHP code¶
<?php
foo() or throw new \Exception();
$x = $_GET['x'] ?? throw new \Exception('Missing value for x');
?>
Before¶
PHP Parse error: syntax error, unexpected 'throw' (T_THROW)
Parse error: syntax error, unexpected 'throw' (T_THROW)
After¶
PHP version change¶
This behavior changed in 8.0