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