<HTML ><HEAD ><TITLE >Returning values</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="Functions" HREF="functions.html"><LINK REL="PREVIOUS" TITLE="Function arguments" HREF="functions.arguments.html"><LINK REL="NEXT" TITLE="old_function" HREF="functions.old-syntax.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="functions.arguments.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 13. Functions</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="functions.old-syntax.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="functions.returning-values" ></A >Returning values</H1 ><P > Values are returned by using the optional return statement. Any type may be returned, including lists and objects. This causes the function to end its execution immediately and pass control back to the line from which it was called. See <A HREF="function.return.html" ><B CLASS="function" >return()</B ></A > for more information. <DIV CLASS="informalexample" ><A NAME="AEN5381" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="php" >function square ($num) { return $num * $num; } echo square (4); // outputs '16'.</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > You can't return multiple values from a function, but similar results can be obtained by returning a list. <DIV CLASS="informalexample" ><A NAME="AEN5384" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="php" >function small_numbers() { return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers();</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > To return a reference from a function, you have to use the reference operator & in both the function declaration and when assigning the returned value to a variable: <DIV CLASS="informalexample" ><A NAME="AEN5387" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="php" >function &returns_reference() { return $someref; } $newref =& returns_reference();</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > For more information on references, please check out <A HREF="language.references.html" >References Explained</A >. </P ></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="functions.arguments.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="functions.old-syntax.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Function arguments</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="functions.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><TT CLASS="literal" >old_function</TT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >