On Thu, Sep 3, 2020 at 4:19 AM Markus Fischer <mar...@fischer.name> wrote:

> > I currently use foreach (array_keys($array) as $key) { ... }
> >   to avoid complains from code analysers on unused var, is it slower?
>
> one argument brought forward initially (sorry, can't find the email
> right now) is the resource management: array_keys() has to create a copy
> [*] which might be an issue depending on the size of data.
>
>
While I like the idea of more explicit syntax to show intent over a mere
convention of $_ being an ignorable var, I do need to call out the foreach
(array_keys(...) argument as being a poor motivator.

IF (and I heavily stress "if" here) this pattern is common among people
trying to show explicit intent and IF it represents a noticeable slowdown,
then the solution for it is for the engine to optimize around that by
transforming it during compile time.  That lets us fix all usages
instantaneously without user interaction, and more importantly it allows
users to focus on their code being readable (and thereby maintainable)
according to whatever coding standards they choose to apply.

Again, that same argument is why I actually like the proposal overall.  Not
because it's so much more performant, but because it empowers developers to
write code in a way that will be most readable and maintainable to them,
should they happen to just not like the $_ unused var pattern (which is a
legit thing to dislike).

-Sara

Reply via email to