php语法if else的一个问题。 本帖最后由 Raffin 于 2011-02-07 13:03:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大括号啊,大括号------------------------------------------------------------------------------------------------http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务 楼主的意思是为什么以下代码会提示语法错误:帮楼主继续求助中。<?phpif ($x==5){ echo 'ok'; }?><?phpelse { echo 'no';}?> <?php if():?><?php else:?><?php endif;?><?phpif(){}else{}?> <?php if (@$Book[0]['OrderType'] == 0): echo "<font color='red'>未支付</font>"; ?> <?php else:echo "已支付"; endif;?></td>语法就像7楼说的那样,不明白看手册 这不是冒号的问题吧。原本的代码也没有冒号,但是却没问题。我再简单重复遍问题:为什么<?php if xxx;else yyy;?>是正确的但<?php if xxx;?> <?php else yyy;?>这样分开写就不对了。 楼主的意思是为什么以下代码会提示语法错误:帮楼主继续求助中。谁能修正以下代码的错误呢?<?phpif ($x==5){echo 'ok';}?><?phpelse {echo 'no';}?> 家这么多<?php ?>有意思吗?不会写道一个里面去啊 这样改即可<?php//$x = 3 ;if ($x==5){echo 'ok';}else{?><?phpecho 'no';}?> <?php$x = 3 ;if ($x==5){echo 'ok';}else?><?php{echo 'no';}?> php的有些东西的确很难解释,我还遇到过同一个php文件,用IE不行,用火狐却是可以的,所以楼主别太纠结了,就按照规范来写,你就按之前的方法写,干嘛在else前加php标签呢 原先的代码:<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 原因很简单,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结构,将会向下继续进行处理,寻找关闭的},最后完成整个过程 那把else一起写进去的话,假如我要在if里面写一些html的代码的话,是不是只能用echo了? 我本来打算拆开来写,然后在if和else之间插入一些html代码的但是如果else必须跟if写一起的话,我写html是不是必须得用echo了?这样就麻烦了。 用echo也不错啊echo <<<EOT挺好的啊,不用去考虑什么双引号,单引号的 http://www.w3school.com.cn/php/php_if_else.asp教程是错的,汗啊 怎么让php直接输出excel文件 不弹确认保存框 同一个页面的两个 select 传值 在线等 上海张江游戏公司急招多个岗位 类里面的一个方法,这样也行? 哪位高人有PHP生成word的最好的方法 提个安全问题 跪求wamp apache配置虚礼主机 for 多输出了一条语句 在html页面不跳转,能否实现登录功能? 看不懂的正则表达式 上传一个图片时,同时生成二个缩略图(一个比另一个大一些),怎么实现? PHP函数调用
------------------------------------------------------------------------------------------------
http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务
帮楼主继续求助中。<?php
if ($x==5)
{
echo 'ok';
}
?><?php
else
{
echo 'no';
}
?>
<?php else:?>
<?php endif;?>
<?php
if(){}else{}
?>
<?php else:echo "已支付"; endif;?></td>语法就像7楼说的那样,不明白看手册
为什么<?php if xxx;else yyy;?>是正确的
但<?php if xxx;?> <?php else yyy;?>这样分开写就不对了。
帮楼主继续求助中。谁能修正以下代码的错误呢?<?php
if ($x==5)
{
echo 'ok';
}
?><?php
else
{
echo 'no';
}
?>
//$x = 3 ;
if ($x==5)
{
echo 'ok';
}else{
?><?php
echo 'no';
}
?>
<?php
$x = 3 ;
if ($x==5)
{
echo 'ok';
}else
?><?php
{
echo 'no';
}
?>
<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
原因很简单,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结构,将会向下继续进行处理,寻找关闭的},最后完成整个过程
但是如果else必须跟if写一起的话,我写html是不是必须得用echo了?这样就麻烦了。
echo <<<EOT挺好的啊,不用去考虑什么双引号,单引号的
教程是错的,汗啊