2013-02-23 4 views
0

Вот мой код:Как реорганизовать этот PHP-код?

$aClass = ''; 
$bClass = ''; 
$cClass = ''; 

if ($_GET['data'] == 'a') 
{ 
    $aClass = ' active'; 
} 
else if ($_GET['data'] == 'b') 
{ 
    $bClass = ' active'; 
} 
else if ($_GET['data'] == 'c') 
{ 
    $cClass = ' active'; 
} 

if ($aClass == '' && $bClass == '' && $cClass == '') 
{ 
    $aClass = ' active'; 
} 

Любые идеи? Это кажется грязным и излишним.

+0

ответ на это, конечно, собирается лежать в логике системы здания. Например, вы можете сделать «switch» в первом наборе, а затем оставить оператор 'if'. –

+0

Примечание. Все приведенные ниже ответы фактически не требуют, чтобы все три переменные были пустыми, просто они не равны 'a',' b' или 'c'. –

ответ

3

Вы можете использовать switch-case построить

switch($_GET['data']) { 
    case "a": //redundant it is also the default case 
     $aClass = ' active'; 
     break; 
    case "b": 
     $bClass = ' active'; 
     break; 
    case "c": 
     $cClass = ' active'; 
     break; 
    default: 
     $aClass = ' active'; 
} 
+0

Не могу поверить, что я забыл о переключателях. Woops. Благодарю. –

+0

Случается к лучшему из нас. : D – Achrome

+0

@JohnSmith также лучше подходит для коммутатора, поскольку он имеет меньшую сложность, чем многие, если вы подаете в суд, или можете использовать elseif, что было бы лучше, чем только если –

0

звучит как вы настраиваете класс CSS. если да, то вы можете попробовать

if ($_GET['data'] == 'b') 
{ 
    $bClass = ' active'; 
} 
else if ($_GET['data'] == 'c') 
{ 
    $cClass = ' active'; 
} 
else 
{ 
    $aClass = ' active'; 
} 
0
switch ($_GET['data']) { 
case 'a': $aClass = ' active'; 
break; 
//ETC.... 
case default: 
$aClass = ' active'; 
break; 
} 
+0

. Я не уверен, что мода, связанная с мой флаг может это видеть, но этот пост был сорван, чтобы выглядеть как вопрос, когда это был фактически ответ. Я вернулся к предыдущей версии; мой флаг NAA недействителен. –

2

всего 4 линии;)

if ($_GET['data'] == 'b' || $_GET['data'] == 'c') 
    ${$_GET['data'] . 'Class'} = ' active'; 
else 
    $aClass = ' active'; 
+0

Интересно, что я не знал, что вы можете это сделать. Я думаю, что я поеду с моим принятым в настоящее время ответом, хотя для облегчения чтения для тех, кто читает этот код в будущем. –

Смежные вопросы