나는 다음과 같은 코드를 작성한다.이것은 나쁜 패턴입니까? (for/foreach 루프 내부 스위치)
foreach($array as $key => $value) {
switch($key) {
case 'something':
doSomething($value);
break;
case 'somethingelse':
doSomethingElse($value);
break;
}
}
더 좋은 방법이 있을까? 나에게 더러운 것 같지만, 생각 만하는 것이 좋을지도 모른다.
생각할 수있는 유일한 대안은 각 키의 if 문입니다. 나는. :
if($array[0] == 'something') {
doSomething($array[0]);
}
if($array[1] == 'somethingelse') {
doSomethingElse($array[1]);
}
(또는 그와 비슷한 것)
필요한 경우 정확한 코드를 게시 할 수 있습니다. 그러나 이것은 어떻게되는지에 대한 일반적인 개요입니다. 비판을 멀리하십시오, 그러나 나가 도움을 여기 찾고 있다는 것을 기억하십시오. 그래서 내가 심각하게 잘못된 것을하고 있다면, 그것을 지적하십시오.
이 코드에서 볼 수있는 중요한 점은 $ 배열에 값이 거의 없다면 성능이 좋지만 많은 수의 값이있는 경우 속도가 훨씬 느릴 것이라고 예상합니다 (단지 10,000 개의 값을 생각하면됩니다). 해당 스위치는 배열의 모든 값에 대해 실행되어야합니다. 작업중인 데이터를 알고 있으므로 이에 따라 솔루션을 선택하십시오. 개인적으로는 if의 경우를 수행하지만 그게 나일뿐입니다. – Tom