So, I’m trying to have a better understanding of how switch would act when an array is not set and if I should use isset() and/or default:
Example, of the code I’m currently using:
$parameters['sort'] = NULL;
if(isset($parameters['sort'])) {
switch($parameters['sort'])
{
case 'relevance':
$parameters['sort'] = 'rating';
break;
case 'published':
$parameters['sort'] = 'updated';
break;
case 'views':
$parameters['sort'] = 'viewCount';
break;
}
}
Note: I know the break; doesn’t have the right indent (should be as below), but it’s how I like using it in switch().
Note2: I’m just reviewing my code to fix bugs and improve it while making better sense of how things should be properly implemented/used
case 'relevance':
$parameters['sort'] = 'rating';
break;
So my question is, should I add the extra default and remove the if() or continue using the if() as it didn’t caused any problem? Using both wouldn’t make any sense!
default:
$parameters['sort'] = '';
break;
defaultoption will be chosen after checking all prior comparisons. If default will be the most common choice and the code will be heavily executed, I think you should stick to the if clause, and you won’t have to trust any auto optimizations to save you processor time.