You can pass variable to function by reference, so that function could modify
its arguments. The syntax is as follows:
// $a is 6 here
Note that there's no reference sign on function call - only on
function definition. Function definition alone is enough to
correctly pass the argument by reference.
Following things can be passed by reference:
Variable, i.e. foo($a)
New statement, i.e. foo(new foobar())
Reference, returned from a function, i.e.:
See also explanations about returning by reference.
$a = 5;
Any other expression should not be passed by reference, as the
result is undefined. For example, the following examples of passing
by reference are invalid:
function bar() // Note the missing &
$a = 5;
foo($a = 5); // Expression, not variable
foo(5); // Constant, not variable
These requirements are for PHP 4.0.4 and later.