Stop Using Pseudo-Types

3 comments

Why? The article fails to explain.

> 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.

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).

And how is Closure::fromCallable('trim') recommended by the article any better in that respect?

    $ php8.4 -r "var_dump(Closure::fromCallable('trim') === Closure::fromCallable('trim'));"
    bool(false)

It is not better, this is a problem with the first-class callable syntax altogether.

Stop using languages where strings are callable :-p

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.

[dead]