<HTML ><HEAD ><TITLE >Returning References</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="PHP Manual" HREF="index.html"><LINK REL="UP" TITLE="References Explained" HREF="language.references.html"><LINK REL="PREVIOUS" TITLE="Passing by Reference" HREF="language.references.pass.html"><LINK REL="NEXT" TITLE="Unsetting References" HREF="language.references.unset.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP Manual</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="language.references.pass.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 15. References Explained</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="language.references.unset.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="language.references.return" ></A >Returning References</H1 ><P > Returning by-reference is useful when you want to use a function to find which variable a reference should be bound to. When returning references, use this syntax: <DIV CLASS="informalexample" ><A NAME="AEN5677" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="php" >function &find_var ($param) { ...code... return $found_var; } $foo =& find_var ($bar); $foo->x = 2;</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > In this example, the property of the object returned by the <TT CLASS="varname" >find_var</TT > function would be set, not the copy, as it would be without using reference syntax. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Note: </B > Unlike parameter passing, here you have to use <TT CLASS="literal" >&</TT > 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 <TT CLASS="varname" >$foo</TT >. </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="language.references.pass.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="language.references.unset.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Passing by Reference</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="language.references.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Unsetting References</TD ></TR ></TABLE ></DIV ></BODY ></HTML >