PHP 手冊
上一頁 | 章 15.References Explained | 下一頁

# Passing by Reference

You can pass variable to function by reference, so that function could modify its arguments. The sytax is as follows:

`function foo (&$var) { $var++; } $a=5; foo ($a); // $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.:

  `function &bar() { $a = 5; return $a; } foo(bar());`

  See also explanations about returning by reference.

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`

These requirements are for PHP 4.0.4 and later.

上一頁 | 最開頭 | 下一頁
What References Are Not | 上一層 | Returning References