Re:Stop Using Pseudo-Types
by joe_hoyle on Monday February 02, 2026 @08:36AM
(#46855879)
The problem is that first class callables actually makes a new object wrapper for each reference, so trim(…) != trim(…). (It can be true in some cases, it depends if the memory is freed for the first reference).
I think the point of introducing the (...) syntax that for some reason this article apparently denigrates (if I even understand it correctly) is to eventually deprecate that.
> The introduction of first-class callables simplifies callback handling. You no longer have an excuse to define your callbacks like this:
> <?php
> $data = array_map(trim(...), [' x', 'z ']);
“First-class callables” is that exact syntax.
My experience is with modern annotations, callable and iterable are pretty powerful, convenient, and safe.
- https://phpstan.org/writing-php-code/phpdoc-types#callables
- https://phpstan.org/writing-php-code/phpdoc-types#iterables