Am 29.01.2025 um 21:16 schrieb Rob Landers <[email protected]>:
> On Wed, Jan 29, 2025, at 20:50, Tim Düsterhus wrote:
>> The (void)
cast makes the intent of not being interested in the return
>> value clear. In C casting to (void)
is an established pattern of
>> "using" a value that the compiler would otherwise consider unused.
>
> I understand what you are saying, but I can also just remove the warning via:
>
> $_ = outer();
>
> Which, to me, is clearer on the intent than (void)outer(); It also happens to make the diffs
> more natural looking when and if the return value gets used during a code review. I'll also
> note that having (void) doesn't preclude me from using $_ either.
I think the (void) cast is familiar for people from C or the like, the only caveat is that it is not
backward compatible, i.e. code using it won't work on older versions of PHP so migrating to it
is not seamless, so it probably should not be used for a while in public libraries / packages.
I guess another option would be to define a
function nop($_) {}
and then use
nop(outer());
but my question is whether $_ = outer() and nop(outer()) will be guaranteed to not being optimized
in a way which causes the warning to reappear. I don't know much about the optimizations being
done but this could be an issue in the future, no?
Regards,
- Chris