解析错误:语法错误,意外的T_ELSE,我不知道为什么

时间:2012-06-27 03:25:18

标签: php

这是我的PHP代码:

<?php if($user->uid == '1'){ ?>
    <h3 class="info">Upcoming Games</h3>    <!--MY CHANGE -from Athletics Events -->
    <?php } ?>
    <?php else { ?> <h3 class="info">Athletic Events</h3>     <?php }?>

为什么会出现此错误?我有我需要的所有括号,不是吗?

4 个答案:

答案 0 :(得分:5)

}else {无法按照您的方式拆分PHP标签。把它想象成你想做的事情:

<?php
if($some_condition) {
    //do something
}
echo '     ';
else {
    //something else
}

这会给你一个解析错误。因为您正在关闭PHP标记,然后有效地输出空格,然后重新打开,您的代码的行为与此类似。如果您同时执行<?php }?><?php else {?>,也同样适用,只是它的行为与您在echo '';之间的行为相同。

答案 1 :(得分:3)

更简洁且不易出错的方法是使用:

<?php if($user->uid == '1'): ?>
<h3 class="info">Upcoming Games</h3>    <!--MY CHANGE -from Athletics Events -->

<?php else: ?>
<h3 class="info">Athletic Events</h3>     

<?php endif; ?>

答案 2 :(得分:1)

像这样改写,让我们看看

<?php if($user->uid == '1'){ ?>
   <h3 class="info">Upcoming Games</h3>    <!--MY CHANGE -from Athletics Events -->
<?php 
   } else { 
 ?>
   <h3 class="info">Athletic Events</h3>     
<?php 
   }
?>

这也有效

<?php if($user == '1'){ ?>
<h3 class="info">Upcoming Games</h3>    <!--MY CHANGE -from Athletics Events -->
<?php } else ?>
<?php  { ?> <h3 class="info">Athletic Events</h3>     <?php }?>

这是您代码的副本,但else向上移动。所以很明显else不应该在开始

答案 3 :(得分:1)

尝试这样

<?php if($user->uid == '1'){ ?>
    <h3 class="info">Upcoming Games</h3>    <!--MY CHANGE -from Athletics Events -->
    <?php } else { ?> <h3 class="info">Athletic Events</h3>     <?php }?>