<!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="移植配置文件" HREF="migration4.configuration.html"><LINK REL="NEXT" TITLE="错误报告" HREF="migration4.error-reporting.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.configuration.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.error-reporting.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="migration4.parser" >解析器行为</A ></H1 ><P > 解析和执行现在变为两个完全独立的步骤。只有当完全成功的解析后,程序才会执行。 </P ><P > 这种改变所带来的一个新的要求是一个脚本文件所包含的另一个文件必须有着完整的语法结构。不能将一个完整的控制结构分散在不同的文件中。这意味着不能在一个文件中开始一个 <TT CLASS="literal" >for</TT > 或 <TT CLASS="literal" >while</TT > 循环、一个 <TT CLASS="literal" >if</TT > 或 <TT CLASS="literal" >switch</TT > 块,而在另一个文件中结束它们,或在另一个文件中使用 <TT CLASS="literal" >else</TT >、<TT CLASS="literal" >endif</TT >、<TT CLASS="literal" >case</TT > 或 <TT CLASS="literal" >break</TT >。 </P ><P > 但是在循环或其它控制结构中包含额外的脚本文件是允许的。只要控制的关键词和相应的 <TT CLASS="literal" >{...}</TT > 在同一个单元(文件或使用函数 <A HREF="function.eval.html" ><B CLASS="function" >eval()</B ></A > 结合的字符串)中就可以了。 </P ><P > 不过,在循环或其它控制结构中包含额外的脚本文件并不是一个好的编程习惯。 </P ><P > 另外,一种在 PHP 3 中不常见的代码――从一个 require 的文件中返回值――在 PHP 4 中也不能使用。而从一个 include 文件中返回值还是允许的。 </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="migration4.configuration.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.error-reporting.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >移植配置文件</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="migration4.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >错误报告</TD ></TR ></TABLE ></DIV ></BODY ></HTML >