<HTML ><HEAD ><TITLE >Function true/false return values</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.44"><LINK REL="HOME" TITLE="PHP Manual" HREF="manual.html"><LINK REL="UP" TITLE="Migrating from PHP/FI 2.0 to PHP 3.0" HREF="migration.html"><LINK REL="PREVIOUS" TITLE="Short-circuited boolean evaluation" HREF="migration-booleval.html"><LINK REL="NEXT" TITLE="Other incompatibilities" HREF="migration-other.html"></HEAD ><BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><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="migration-booleval.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Appendix A. Migrating from PHP/FI 2.0 to PHP 3.0</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="migration-other.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="migration-truefalse" >Function true/false return values</A ></H1 ><P > Most internal functions have been rewritten so they return TRUE when successful and FALSE when failing, as opposed to 0 and -1 in PHP/FI 2.0, respectively. The new behaviour allows for more logical code, like <TT CLASS="literal" >$fp = fopen("/your/file") or fail("darn!");</TT >. Because PHP/FI 2.0 had no clear rules for what functions should return when they failed, most such scripts will probably have to be checked manually after using the 2.0 to 3.0 convertor.</P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><P ><B >Example A-9. Migration from 2.0: return values, old code</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="programlisting" > 1 2 $fp = fopen($file, "r"); 3 if ($fp == -1); 4 echo("Could not open $file for reading<br>\n"); 5 endif; 6 </PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><P ><B >Example A-10. Migration from 2.0: return values, new code</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="programlisting" > 1 2 $fp = @fopen($file, "r") or print("Could not open $file for reading<br>\n"); 3 </PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="migration-booleval.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="manual.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="migration-other.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Short-circuited boolean evaluation</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="migration.html" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Other incompatibilities</TD ></TR ></TABLE ></DIV ></BODY ></HTML >