2011-01-07 3 views
0

이 코드 비트가 최상의 코딩 방법을 따르지 않고 어떤 아이디어를 향상 시킬지 알고 있습니까?PHP 코드 최적화 (최대/최대/대/소문자 구분)

if ($query['date_min'] != _get_date_today()) 
    $mode_min = true; 
if ($query['date_max'] != _get_date_today()) 
    $mode_max = true; 

if ($mode_max && $mode_min) 
    $mode = "between"; 
elseif ($mode_max && !$mode_min) 
    $mode = "max"; 
elseif (!$mode_max && $mode_min) 
    $mode = "min"; 
else 
    return; 

if ($mode == "min" || $mode == "between") { 
    $command_min = "A"; 
} 
if ($mode == "max" || $mode == "between") { 
    $command_max = "B"; 
} 
if ($mode == "between") { 
    $command = $command_min . " AND " . $command_max; 
} else { 
    if ($mode == "min") 
     $command = $command_min; 
    if ($mode == "max") 
     $command = $command_max; 
} 

echo $command; 

솔루션 :

$mode_min = ($query['date_min'] != _get_date_today()); 
$mode_max = ($query['date_max'] != _get_date_today()); 

if ($mode_min){ 
    $command_min = "A"; 
} 
if ($mode_max) { 
    $command_max = "B"; 
} 
if ($mode_min && $mode_max) { 
    $command = $command_min . " AND " . $command_max; 
} else { 
    if ($mode_min) 
     $command = $command_min; 
    if ($mode_max) 
     $command = $command_max; 
} 

답변

2

조건이 충족되지 않을 경우 기술적으로 당신의 변수가 정의되지 않은, 그래서 난 그냥 사용합니다 : 그 외에도

$mod_min = ($query['date_min'] != _get_date_today()); 
$mod_max = ($query['date_max'] != _get_date_today()); 

, 왜 당신은을 정의 $mode 변수가 필요합니까? 그렇지 않은 경우 if 진술 문에 $mod_min$mod_max을 사용할 수 있습니다. 예를 들어

는 :

if ($mod_min) 

편집 : 당신의 마지막 업데이트의 편집 :

$command_min = "A"; 
$command_max = "B"; 

if ($mode_min && $mode_max) { 
    $command = $command_min . " AND " . $command_max; 
} 
elseif ($mode_min){ 
    $command = $command_min; 
} 
elseif ($mode_max) { 
    $command = $command_max; 
} else { 
    return; 
} 
+0

'($ 모드 == "

if ($mode == "min" || $mode == "between") 

로 번역하는 것 min "|| $ mode =="between ")'더 읽기 쉬웠습니다. 그렇지 않으면'((! $ mode_max && $ mode_min) || ($ mo de_max && $ mode_min))'나는 맞습니까? – Dot

+0

사실, 완벽하게 작동합니다. 질문에 대한 해결책을 추가했습니다. (이번에는 최대 최적화 된 희망 : D) – Dot

+0

@Swizzh 최종 솔루션에서'return' 문이 누락되었습니다 ('! $ mod_min &&! $ mod_max') – jeroen