Ошибка анализа: синтаксическая ошибка, неожиданный T_ELSE, и я не знаю, почему

Здесь мой 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 }?>

Почему я получаю эту ошибку? У меня есть все скобки, которые мне нужны, не так ли?

Ответ 1

} и else { нельзя разделить с тегами PHP так, как у вас есть. Подумайте об этом, как будто вы пытались сделать:

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

Это даст вам ошибку синтаксического анализа. Поскольку вы закрываете теги PHP, а затем эффективно выводите пробелы, а затем снова открываете, ваш код ведет себя аналогично этому. То же самое относится и к тому, что вы должны были делать <?php }?><?php else {?>, только он будет вести себя так, как будто вы делали echo ''; между ними.

Ответ 2

Более чистый и менее подверженный ошибкам способ заключается в использовании :

<?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; ?>

Ответ 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 
   }
?>

это также работало

<?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 не должно быть в начале

Ответ 4

Попробуй так:

<?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 }?>