本帖最后由 Raffin 于 2011-02-07 13:03:18 编辑

解决方案 »

  1.   

    大括号啊,大括号
    ------------------------------------------------------------------------------------------------
    http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务
      

  2.   

    楼主的意思是为什么以下代码会提示语法错误:
    帮楼主继续求助中。<?php
    if ($x==5)
    {
    echo 'ok';
    }
    ?><?php
    else 
    {
    echo 'no';
    }
    ?>
      

  3.   

    <?php if():?>
    <?php else:?>
    <?php endif;?>
    <?php
    if(){}else{}
    ?>
      

  4.   

    <?php if (@$Book[0]['OrderType'] == 0): echo "<font color='red'>未支付</font>"; ?>  
    <?php else:echo "已支付"; endif;?></td>语法就像7楼说的那样,不明白看手册
      

  5.   

    这不是冒号的问题吧。原本的代码也没有冒号,但是却没问题。我再简单重复遍问题:
    为什么<?php if xxx;else yyy;?>是正确的
    但<?php if xxx;?> <?php else yyy;?>这样分开写就不对了。
      

  6.   

    楼主的意思是为什么以下代码会提示语法错误:
    帮楼主继续求助中。谁能修正以下代码的错误呢?<?php
    if ($x==5)
    {
    echo 'ok';
    }
    ?><?php
    else 
    {
    echo 'no';
    }
    ?>
      

  7.   

    家这么多<?php ?>有意思吗?不会写道一个里面去啊
      

  8.   

    这样改即可<?php
    //$x = 3 ;
    if ($x==5)
    {
    echo 'ok';
    }else{
    ?><?php
    echo 'no';
    }
    ?>
      

  9.   


    <?php
    $x = 3 ;
    if ($x==5)
    {
    echo 'ok';
    }else
    ?><?php
    {
    echo 'no';
    }
    ?>
      

  10.   

    php的有些东西的确很难解释,我还遇到过同一个php文件,用IE不行,用火狐却是可以的,所以楼主别太纠结了,就按照规范来写,你就按之前的方法写,干嘛在else前加php标签呢
      

  11.   

    原先的代码:
    <td colspan="3"><?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; else echo "已支付"; ?></td>
    //这句可以通过,是因为整个代码在一个PHP标记中实行//但是第二段代码,楼主把他们分开,变为两个php标记来实行。<td colspan="3"><?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; ?>  //这个要是单个是可以运行的,但楼主要做if else判断的话,就要把else放在第一句中,像这样----------------
    <td colspan="3"><?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; else?>  
    <?php  echo "已支付"; ?></td>--------------------------
    其实是这样的
    <?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; ?>  //第第一个php标记单独运行,能正常实行,apache当做一个语句来实行,但是遇到新的php标记时,apache又会当做新的一个php语句实行,这时,就相当于else echo "已支付"; //当然又抛出异常<?php else echo "已支付"; ?></td>//所以这时,这里就会出错了,Parse error: syntax error, unexpected T_ELSE in D:\xampp\htdocs\teamon\Admin\OrderReply.php on line 180
      

  12.   


    原因很简单,PHP中以<?php ?>完整的标记作为一个预处理模块,在<td colspan="3"><?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; ?>  
    <?php else echo "已支付"; ?></td>这段代码里,
    <?php if ($Book[0]['OrderType'] == 0) echo "<font color='red'>未支付</font>"; ?>  
    作为一个独立模块是可以运行的,但是它和
    <?php else echo "已支付"; ?></td>
    是没有任何关系的,是分开进行处理的,因此会报这个错,正确的写法应该是:
    <td colspan="3">
    <?php if (true) 
    {
        echo "<font color='red'>未支付</font>";
    }
    else
    {
    ?><?php echo "已支付";
    }?></td>
    这样写当<?php if (true) 
    {
        echo "<font color='red'>未支付</font>";
    }
    else
    {
    ?>
    PHP就会知道这是一个完全的IF ELSE结构,将会向下继续进行处理,寻找关闭的},最后完成整个过程
      

  13.   

    那把else一起写进去的话,假如我要在if里面写一些html的代码的话,是不是只能用echo了?
      

  14.   

    我本来打算拆开来写,然后在if和else之间插入一些html代码的
    但是如果else必须跟if写一起的话,我写html是不是必须得用echo了?这样就麻烦了。
      

  15.   

    用echo也不错啊
    echo <<<EOT挺好的啊,不用去考虑什么双引号,单引号的
      

  16.   

    http://www.w3school.com.cn/php/php_if_else.asp
    教程是错的,汗啊