Hi,
There is a use case for the function allowing *explicitly* call-time pass by
reference, because the function works both ways in subtly different ways.
I have some libraries where I had to have variations of the functions like
"AbcByRefr()" and "Abc()", because of this inflexibility.
In a perfect world, here's how I'd do it, of course the actual syntax can be
something else (this also improves the understanding of the code as it makes
the intent explicit, versus implicit at call time, as it is now):
---
function foo(& $a) {} // allows only explicit pass by reference
foo($a); // illegal, error
foo(& $a); // legal, pass by reference
---
function bar($a) {} // forbids pass by reference
foo($a); // legal, pass as 'copy'
foo(& $a); // illegal, error
---
function baz(&? $a) {} // acknowledges that it functions properly and
accepts both ways
foo($a); // legal, pass as 'copy'
foo(& $a); // legal, pass as reference
---
Regards,
Stan Vassilev
On Wed, May 21, 2008 at 10:46 PM, LEW21 <[EMAIL PROTECTED]> wrote:
Sometimes call time pass by reference is useful, for example when you
want to make it possible to omit an param (normally passed by
reference) by setting null. With no call time pass by reference,
programmers are required to write:
$null = null;
foo($null);
what stops you from declaring:
function someFunc(&$param = null)
{
}
it works just fine
Deleting it isn't a good idea, it should become a normal (not
deprecated) language feature.
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php