You can pass variable to function by reference, so that function could modify its arguments. The syntax is as follows:
function foo (&$var) { $var++; } $a=5; foo ($a); // $a is 6 here |
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.:
function &bar() { $a = 5; return $a; } foo(bar()); |
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; return $a; } foo(bar()); foo($a = 5) // Expression, not variable foo(5) // Constant, not variable |