2

Here's my php code:

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

Why do I get this error? I have all the brackets I need, don't I?

1
  • are you sure this is the code that is giving the error? Commented Jun 27, 2012 at 3:31

4 Answers 4

6

The } and else { can't be broken apart with PHP tags the way that you have it. Think of it as if you were trying to do:

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

This would give you a parse error. Because you are closing the PHP tags, and then effectively outputting whitespace, then reopening, your code is behaving similarly to this. The same also applies if you were to be doing <?php }?><?php else {?> as well, only it would behave like you were doing echo ''; in between.

0
4

A cleaner and less error prone way is to use :

<?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; ?>
1
  • This was very useful. I just got stuck on another, seemingly identical if else issue and I just can't see why its different to the example above, but with your code it works! Commented Jun 27, 2012 at 10:36
2

Try it like this

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

Rewrite like this and let's see

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

this also worked

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

that was a replica of your code but the else is move up. So it is obvious else should not be at the start

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.