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