<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >缺少的函数</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="从 PHP 3 移植到 PHP 4" HREF="migration4.html"><LINK REL="PREVIOUS" TITLE='empty("0")' HREF="migration4.empty.html"><LINK REL="NEXT" TITLE="PHP 3 扩展" HREF="migration4.extensions.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="section" 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 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="migration4.empty.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >附录 D. 从 PHP 3 移植到 PHP 4</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="migration4.extensions.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="migration4.missing" >缺少的函数</A ></H1 ><P > 虽然 PHP 4 带来了许多新功能、函数和扩展,但是会发现一些原本在 PHP 3 中存在的函数不见了。少量的内核函数被取消,因为它们不符合 Zend engine 新的解析――执行的模式。另外一些函数甚至是扩展完全的被荒废,是因为新的函数可以更好的完成旧函数的功能。一些函数只是空函数,而另一些因为版权冲突而取消了。 </P ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="migration4.missing.concept" >由于概念的改变而取消的函数</A ></H2 ><P > PHP 4 现在将解析从执行中分离,因此不可能在运行时间改变解析器(现在已经嵌入 Zend engine)的行为,此时已经解析完毕了。所以函数 <B CLASS="function" >short_tags()</B > 不再存在。仍然可以对 <TT CLASS="filename" >php.ini</TT > 文件设置适当的值以改变编译器的行为。 </P ><P > 另一个 PHP 3 的功能在 PHP 4 中不复存在:内部捆绑的 debug 接口。现在有第三方 Zend engine 的 add-ons 有着类似的功能。 </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="migration4.deprecate" >不推荐使用的函数和扩展</A ></H2 ><P > Adabas 和 Solid 数据库扩展不再推荐使用。最好使用统一的 ODBC 扩展代替。 </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="migration4.unset" ><A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A > 的改变</A ></H2 ><P > <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A >,虽然仍然可以使用,但是它成为了语言结构的一部分,而不是一个函数。 </P ><P > 这对 <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A > 的行为不会产生什么影响,但是使用 <A HREF="function.function-exists.html" ><B CLASS="function" >function_exists()</B ></A > 函数测试“unset”时会返回 <TT CLASS="constant" ><B >FALSE</B ></TT >。它已经是 PHP 语言的一部分,虽然它很像函数。这和 <A HREF="function.echo.html" ><B CLASS="function" >echo()</B ></A > 是一样的。 </P ><P > 另一个实际的改变是,不能间接调用 <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A >。因此 <TT CLASS="literal" >$func="unset"; $func($somevar)</TT > 不再工作。 </P ></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="migration4.empty.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="migration4.extensions.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><TT CLASS="literal" >empty("0")</TT ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="migration4.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >PHP 3 扩展</TD ></TR ></TABLE ></DIV ></BODY ></HTML >