PHP解释执行的不假,但是它的优先级是高于html和js的,也就是说,PHP是首先被解释执行.
你这段代码等同于<?php
if($a>1)
{
 echo "if外的文字";

else
{
 echo "else外的文字";
?>也就是说,虽然你把它当做html,但是这段html是处于if else的包括范围之内的,所以要受影响.这个我觉得如果你以前PHP和html混用过的话,就不会有此问题了.

解决方案 »

  1.   

    <?php
        if($a>1){
    ?>
    if外的文字
    <?php 
    } else{
    ?>
    else外的文字
    <?php }?>
    上例可正常工作,因为当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出直到碰到下一个开始标记为止。
      

  2.   

    简单说PHP是服务器端的技术,可以控制HTML的生成。这个例子里客户端查看源码是看不到“if外的语句”这一部分的。
      

  3.   

    PHP优先级是高于html & js 但是按照常理,她应该只执行<?php?>中的内容,应该不影响现有的静态Html吧,而且也没有权力影响吧。
      

  4.   

    dada20042030 你没有明白我的意思
    PHP指抽出 <?php?>内的代码加以解释执行,为什么这个If会影响其外的HTML输出? 
      

  5.   

    我感觉你没明白我的意思,你也没明白一个网页是怎么执行的~
    打开PHP手册,查找-章 10. 基本语法
    里面有你要的答案~
      

  6.   

    我想服务器端的语言一定会优先于,htm语句的吧,当if($a>1) 便会执行{}内的html代码,否则不执行。我不知道你明白不明白了。反正一点,服务端的语言优先级高。
      

  7.   

    我看了文档了,解释如下:PHP 代码块结束标记奖自动包含最近的一个结尾的新行(如果存在的话)。而且,结束标记自动隐含一个分号; 您不需要为 PHP 代码块的最后行追加一个分号。 
    而且上面也有个和这代码一模一样的例子;
    但对“最近的一个结尾的新行“不明白,太该是?>后所有的html吧,然后在其后加上一个分号;
      

  8.   

    文档上说:解释器不对其做任何处理,而特殊标记内文件将作为 PHP 代码被解释器分析执行。该运行机制将允许您在 HTML 中嵌入 PHP 代码:PHP 标记外的内容将被完全独立开,不做任何处理,而内部的将作为 PHP 代码解析。