A pure enum has cases and nothing behind them, which makes it useless for a database column and exactly right for a distinction that only exists inside the…
Requiring something that is both Countable and Traversable previously meant declaring an interface extending both and changing every implementing class. The restriction to class and interface types is…
get_object_vars respects scope, so the same call returns different arrays depending on where it is written. The scope sensitivity is documented and is nearly always encountered as a…
Constructor promotion needs a constructor body to assign into, so it is not available on an abstract constructor or in an interface. An abstract class with a concrete…
When a nullsafe operator short-circuits, everything to the right of it is skipped — including method arguments, which are not evaluated at all. The short-circuiting is the same…
The nullsafe operator turns a fatal error into a null, which is sometimes exactly right and sometimes the removal of the only signal that something upstream was wrong.…
A return inside finally overrides both the pending return value and any in-flight exception, with no diagnostic. This is almost always a mistake and there is no legitimate…