Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP

Kevin Shirley
Kevin Shirley
7,140 Points

SWITCH statement bug

I do not understand why the code challenge is saying that it is not seeing the correct output for editors. It is also asking if I left off a "break" 'editor', but I clearly have one. Please help!

<?php
//Available roles: admin, editor, author, subscriber
if (!isset($role)) {
    $role = 'subscriber';
}


//change to switch statement
/*$role = ['admin', 'editor', 'author'];*/
if ($role != 'admin') {
    echo "You do not have access to this page. Please contact your administrator.";
} else {
  switch ($role) {
    case "admin":
       echo "As an admin, you can add, edit, or delete any post.";
       break;
    case "editor":
       echo "As an editor, you can add or edit any post, and delete your own posts.";
       break;    
    case "author":
       echo "As an author, you can add, edit, or delete your own post.";
       break;
    default:
       echo "You do not have access to this page. Please contact your administrator.";
       break;
}

}

?>
Thomas Fildes
Thomas Fildes
22,687 Points

Hi Kevin,

It may work when you delete the if statement because you are to change it to a switch statement so you don't need it there. If that doesn't work, double check the wordings for the echo outputs as it is very strict because I tried this challenge days ago and i missed one punctuation mark and it stopped me from completing the challenge.

Hope it works out!

1 Answer

Casey Ydenberg
Casey Ydenberg
15,622 Points

The switch is contained in an else which is also testing the value of $role. Step through the code for each value of role and see where you end up.

Kevin Shirley
Kevin Shirley
7,140 Points

Thanks to both of you for the help! I just deleted the if and else statement, and only left the switch statement and it worked properly. I feel relief now :)!