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 PHP Arrays and Control Structures PHP Conditionals Switch Statements

PHP switch challenge 2 of 2. What am i doing wrong with this code?

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

//change to switch statement switch ($role != 'admin' ) { case "admin": echo "You do not have access to this page. Please contact your administrator."; 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 "As an admin, you can add, edit, or delete any post."; break;

} ?>

David Moody
David Moody
19,302 Points

First your code looks like this:

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

//change to switch statement switch 
($role != 'admin' ) { 
    case "admin": 
        echo "You do not have access to this page. Please contact your administrator."; 
        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 "As an admin, you can add, edit, or delete any post."; 
        break;

} ?>

Please notice that you have the wrong message for admin. Move what you have as the default into the message for admin, and then move what you have for admin into the message for default.

Also notice that you did not introduce the switch statement correctly. You need to insert at the beginning of the switch statement, this:

switch ($role) {

If you make both of those changes, it looks like this:

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

//change to switch statement switch 
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;

} ?>

1 Answer

Thank you so much for your help, It worked!