Pas de DNF pour catch
<?php
try {} catch (A&B $e) {}
try {} catch (A|(B&C) $e) {}
Les clauses catch acceptent plusieurs types d’exceptions depuis PHP 7.1 : ils sont listés avec le séparateur ‘|’.
Cela ressemble au type union de PHP 8.0, et se comporte de la même manière.
Pourtant, ce n’est pas un type ordinaire, car les formats d’intersection et DNF ne sont pas supportés lors de l’analyse syntaxique. Ainsi, les deux expressions ci-dessous génèrent une erreur.
See Also
- Catch (PHP manual)
- Type declarations
- No DNF [Try me]
PHP Features
Last updated: 11 October 2026