I am currently using a class to control access to certain files in my site. The class works fine. However, i’ve recently been informed that I need to create a much more fine-grained system for one particular section of the site. My first inclination was to use nested if-else-if to set a couple of variables.
$admin = new Admin();
if( $admin->user_access('can_view_g2')) {
$groupNum = $group2;
$adminGroup = true;
} else {
if( $admin->user_access('can_view_g3')) {
$groupNum = $group3;
$adminGroup = false;
} else {
if( $admin->user_access('can_view_g4')) {
$groupNum = $group4;
$adminGroup = true;
} else {
. . .
Now I would like to eliminate a few lines of code and create a cleaner flow-control statement. I’d like to use a switch statement to handle this, but i’m not sure it is possible since I am accessing the methods and properties of a class.
switch ($admin->user_access($permission)) {
case 'can_view_g2':
$groupNum = $group2;
$adminGroup = true;
break;
case 'can_view_g3':
$groupNum = $group3;
$adminGroup = true;;
break;
case 'can_view_g4':
$groupNum = $group4;
$adminGroup = true;
. . .
What I have above is not working. Does anyone know of a way to do this or at least a more efficient flow control method to use?
If your just trying to turn the block of if/else into a switch/case: