0
속성 값을 기반으로 호출하는 메서드 목록이 많습니다. 내가하는 일을하는 데 더 정확한 방법이 있는지 궁금 해서요? 지금속성 값을 기반으로 메서드 호출
내 코드 :
if ($qvalue->fid == 1) { $this->Archive1(); }
if ($qvalue->fid == 2) { $this->Archive2(); }
if ($qvalue->fid == 3) { $this->Archive3(); }
if ($qvalue->fid == 4) { $this->Archive4(); }
if ($qvalue->fid == 5) { $this->Archive5(); }
if ($qvalue->fid == 6) { $this->Archive6(); }
if ($qvalue->fid == 7) { $this->Archive7(); }
if ($qvalue->fid == 8) { $this->Archive8(); }
if ($qvalue->fid == 9) { $this->Archive9(); }
if ($qvalue->fid == 10) { $this->Archive10(); }
...
내가 같은 것을 할 수 있습니다 :
$this->Archive($qvalue->fid)();
내가이 늘 일을 알고, 난 그냥 뭔가 더 나은 가능한 경우 모르겠습니다. 비슷한 내용의 다른 게시물을 보려면 무엇을 검색 할지도 모릅니다.
'Archive9(), Archive10()'에 따라 달라집니다. – codingbiz
Archive9() 메소드를 호출/실행하는 더 좋은 방법이 있는지 궁금합니다. 그 안에 무엇이 있는지는 중요하지 않습니다. – ATLChris
중요한 것은 같은 일을하는 (아마도 * 다른 데이터 일 것임) 많은 기능을 가진 것은 깨진 디자인이라는 것입니다. 저주받을만한 가치가 있지 않습니다. 차이점이 데이터라면, '$ item1','$ item2','$ item3' ...이 실제로 배열이어야하는 것과 같은 이유로 하나의 메소드 여야합니다. (각 함수에 매개 변수를 전달하는 것을 싫어하면'$ qvalue-> fid'의 값으로 색인 된 연관 배열의 배열에 저장할 수 있습니다.) 기능이 다른 경우 다른 함수 문제. (그러나 당신의 * 이름 *이 깨 졌음을 의미합니다.) – cHao