PHP Manual
Prev | Chapter 21. References Explained | Next

# Returning References

Returning by-reference is useful when you want to use a function to find which variable a reference should be bound to. Do not use return-by-reference to increase performance, the engine is smart enough to optimize this on its own. Only return references when you have a valid technical reason to do it! To return references, use this syntax:

`<?php function &find_var($param) { /* ...code... */ return $found_var; } $foo =& find_var($bar); $foo->x = 2; ?>`

In this example, the property of the object returned by the find_var function would be set, not the copy, as it would be without using reference syntax.

> Note: Unlike parameter passing, here you have to use & in both places - to indicate that you return by-reference, not a copy as usual, and to indicate that reference binding, rather than usual assignment, should be done for $foo.

> Note: If you try to return a reference from a function with the syntax: return ($found_var); this will not work as you are attempting to return the result of an expression, and not a variable, by reference. You can only return variables by reference from a function - nothing else. `E_NOTICE` error is issued since PHP 4.4.0 and PHP 5.1.0 if the code tries to return a dynamic expression or a result of the new operator.

Prev | Home | Next
Passing by Reference | Up | Unsetting References