2017-02-18 3 views
0

이 코드를 개선하여 동일한 기능을 계속해서 반복하지 않으려면 어떻게해야합니까? 변수 이름을 나중에 코드에서 사용하기 위해 특별히 설정해야하므로이 함수를 만드는 데 어려움을 겪고 있습니다. 여기반복 변수를 방지하기 위해 간단한 변수 값을 지정하고 나중에 테스트하는 것이 가장 좋습니다.

코드 ...

으로 나중에 코드에서 사용
if (in_array("knownValue", $array)) { 
    $variableA = true; 
} else { 
    $variableA = false; 
} 
if (in_array("knownValue", $array)) { 
    $variableB = true; 
} else { 
    $variableB = false; 
} 
if (in_array("knownValue", $array)) { 
    $variableC = true; 
} else { 
    $variableC = false; 
} 
if (in_array("knownValue", $array)) { 
    $variableD = true; 
} else { 
    $variableD = false; 
} 

...

if ($variableA) { 
    //do stuff... 
} else { 
    //do other stuff... 
} 
if ($variableB) { 
    //do stuff... 
} else { 
    //do other stuff... 
} 
etc... 

편집 -

감사합니다, 나는 그냥 잠을 필요 thnk! 코드를 축약하기 위해 관리

<select class='selectpicker width100 updateAbilities' name='staffAbliities[]' multiple>"; 
    function renderOption($ability, $title, $array) { 
      if (in_array($ability, $array)) { 
       echo " 
     <option data-content='<img src='images/abilities/$ability.png'> $title' value='$ability' selected> 
      $title 
     </option>"; 
    } else { 
     echo " 
      <option data-content='<img src='images/abilities/$ability.png'> $title' value='$ability'> 
       $title 
      </option>"; 
     } 
    } 
    renderOption("ops", "Operations Manager", $abilities); 
    renderOption("guide_manager", "Guide Manager", $abilities); 
    renderOption("senior_guide", "Senior Guide", $abilities); 
    renderOption("guide", "Guide", $abilities); 
    renderOption("trainee_guide", "Trainee Guide", $abilities); 
    renderOption("big_bus", "Full PCV License", $abilities); 
    renderOption("small_bus", "Small PCV License", $abilities); 
    renderOption("wfr", "Wilderness First Responder", $abilities); 
    renderOption("ice_climber", "Ice Climber", $abilities); 
    echo " 
</select> 
+0

했나 더 우아한 결정이라고 생각 "을 knownValue"때마다 다른 경우, 또는이 정확한 문자열은 모든 검사에 배열로 보면된다? – plamen

+0

매번 다를 수 있습니다. –

+0

구문을 짧게 사용하면 일부 코드를 저장할 수 있습니다. $ variableA = (in_array ("knownValue", $ array))? 허위 사실; – plamen

답변

0

변수로 처음 확인하는 것은 불필요하다고 생각합니다. 첫 번째 부분없이 코드가 정상적으로 작동합니다. 당신이이

$yourKeyForCheck = 'knownValue' 

if (array_value($yourKeyForCheck, $array)) { 
    //do stuff 
} else { 
    //do other stuff... 
} 

편집 시도 할 수 있습니다 :이

$aOptions = [ 
    [ 'name'   => 'ops', 
     'title'   => 'Operations Manager', 
     'abilities'  => $abilities, 
    ], 
    [ 'name'   => 'guide_manager', 
     'title'   => 'Guide Manager', 
     'abilities'  => $abilities, 
    ], 
    [ 'name'   => 'senior_guide', 
     'title'   => 'Senior Guide', 
     'abilities'  => $abilities, 
    ], 
    [ 'name'   => 'guide', 
     'title'   => 'Guider', 
     'abilities'  => $abilities, 
    ], 
    [ 'name'   => 'ops', 
     'title'   => 'Operations Manager', 
     'abilities'  => $abilities, 
    ], 
]; 

<select class='selectpicker width100 updateAbilities' name='staffAbliities[]' multiple>"; 
<?php forech($aOptions as $aOption) { ?> 
    <option 
     data-content='<img src='images/abilities/$ability.png'> 
     <?php echo $aOption['title']?>'; 
     value='<?php echo $aOption['abilities']; ?>' 
     <?php echo in_array($ability, $array)? selected : '' ?> 
     $title 
    </option>"; 
<?php } ?> 
</select> 
+0

고마워, 나는 그걸 자고 싶었어! 코드를 응축하도록 관리 –