The ampersand before the function name indicates that the function returns a
reference instead of a copy of the variable, for example:
<?php
function &max(&$var1, &$var2) {
if ($var1 > $var2) return $var1;
else return $var2;
}
$global1 = 10;
$global2 = 9;
$maxglobal =& max($global1, $global2);
$maxglobal++;
echo $global1;
//this will print 11 since $maxglobal is a reference to $global1
?>
2006/4/11, tedd <[EMAIL PROTECTED]>:
>
>
> Additionally, what I don't get is this:
>
> <?php
> $a = 10;
> echo("$a <br/>");
> ref1(&$a);
> echo("$a <br/>");
>
> $a = 10;
> echo("$a <br/>");
> ref2($a);
> echo("$a <br/>");
>
> $a = 10;
> echo("$a <br/>");
> ref3($a);
> echo("$a <br/>");
>
> ?>
>
>
> <?php
> function ref1($a)
> {
> $a--;
> }
>
> ?>
>
> <?php
> function ref2(&$a)
> {
> $a--;
> }
>
> ?>
>
> <?php
> function &ref3($a)
> {
> $a--;
> }
>
> ?>
>
> The first two functions work as I would expect. The last one is shown
> in the documentation, but doesn't work as I expected. There doesn't
> appear to be any difference between ref1 and ref3 -- so what's with
> the "ampersand" in &ref3? What is an ampersand supposed to mean/do
> when it precedes a function?
>
> Thanks.
>
> tedd
> --
>
> --------------------------------------------------------------------------------
> http://sperling.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>