What about foreach by reference, which is honestly the only time I use
referencing anymore...

foreach ($array as $key => &$value) {
  $value = someOp($value);
}

Is this also bad?

On Fri, Jun 2, 2017 at 10:56 AM, Johannes Schlüter <johan...@schlueters.de>
wrote:

> On Fr, 2017-06-02 at 15:21 +0200, Bartłomiej Krukowski wrote:
> > Hello,
> >
> > PHP allows for using implicit references in arguments of function. In
> > most common case we have to mark that variable is an reference in
> > head of function, in other case we will receive fatal error (@see
> > example - http://ideone.com/7zkgQQ <http://ideone.com/7zkgQQ>). There
> > is an option to use variable as implicit reference (@see example - ht
> > tp://ideone.com/T6oF7C <http://ideone.com/T6oF7C>), I think it should
> > not be possible. Only explicit references should be allowed (except
> > objects).
>
> The argument to the function in the second value is an array which is
> passed by value. A copy of the array keeps the references as
> references. This is consistent. Unless we have typed arrays or anything
> like that the function call shouldn't care about the content.
>
> Aside from that references are a legacy construct and shouldn't be used
> anymore. Using objects or relying on copy-on-write usually leads to
> clearer code, reduced memory and faster execution. (in the past there
> had been a few exceptions where arrays of references were good for some
> graphs/trees with recent improvements to objects this is less the case)
>
> johannes
>
> http://schlueters.de/blog/archives/125-Do-not-use-PHP-references.html
> http://schlueters.de/blog/archives/141-References-and-foreach.html
> http://schlueters.de/blog/archives/180-References-Still-bad-in-PHP-7.ht
> ml
> http://schlueters.de/blog/archives/181-More-on-references.html
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to