tedd wrote:
It's not that it's not allowed, it's that it should be done differently. You should make the function accept a reference in the definition, not pass in a reference to the function.

The manual page has a good, simple example on what to do.

http://www.php.net/manual/en/language.references.pass.php


Chris:

Interesting. One would think (at least I do) it should be the other way around.

Using the example given at the link above:

<?php
function foo(&$var)
{
   $var++;
}

$a=5;
foo($a);
// $a is 6 here
?>

We have one function that works one way.

<?php
function foo($var)
{
   $var++;
}

$a=5;
foo(&$a);
// $a is 6 here
?>

However, doing it this way, the function can serve two purposes. I can send it a reference or I could send it a value. I know that in this function a value doesn't do anything, but it could if the function was different.

Plus, in the first function, I can't send it a reference (i.e., a reference to a reference?).

I'd guess it's to simplify things.

Having been involved in a big cms that used references all over the place (everything was OO), it was extremely hard to find / track down where they should be and where they were missing - which caused memory blow-outs where they were not used, and segfault crashes where they were incorrectly used.

If they were all in the function definitions, I don't have to worry about that particular problem.

However, it's something the developers would have to give a definitive answer on.

--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to