2010-04-24 5 views
1

PHP에서 스위치 케이스 루프를 사용하는 동안 for 루프를 사용하여 케이스를 반복 할 수 있습니까? 예를 들어 스위치 케이스 루프를 사용하는 동안 for 루프를 사용하여 케이스를 반복 할 수 있습니까?

switch ..... 

foreach($xyz as $abc) 

{ 
CASE:$abc 
} 

default; 

UPDATE 내가 DB에서 값을 가져 오는하고

,이 값은 테이블의 이름은 "사건"나는에 따라 특정 쿼리를 실행하려면 사용하여 테이블 이름 ..

이것은 가능합니까?

+0

y 사용하지 않고 확인하십시오. – nik

+0

예. 대/소문자 대신에 사용하십시오. –

+0

@nik 여기에 사람들이 경험하고있는 것은 무엇입니까? 우리가 그것을 확인하게하기 위해서? –

답변

1

아마도 switch 문을 foreach에 넣으시겠습니까?

foreach ($tables as $table) { 
    switch ($table) { 
     case 'table_one' : 
      // do something here 
      break; 
     case 'table_two' : 
      // do something here 
      break; 
     case 'table_three' : 
      // do something here 
      break; 
     default : 
      // do some error handling here 
      break; 
    } 
} 

또는 스위치 읽고 멀리 switch에서 가서 사용하는 것이 그렇게 쉬운 일이 아니다 배열 전원이 동적으로case 수행 할 작업을 만들 수 있습니다, 특히, if을 :

$tables = array('table_one', 'table_two', 'table_three'); 
if (in_array($table, $tables)) { 
    // do something here 
} else { 
    // do some error handling here 
} 

배열에 많은 요소가 있더라도 훨씬 더 읽기 쉽습니다.

+2

그는 CASE 문을 동적으로 생성 할 수 있는지 묻습니다. – Finbarr

+0

U 내가 뭘하고 싶은지,이 일을 할 수있는 것이 맞아,하지만 32 테이블 주위에 무리가있다, 그들은 모두 Joomla 테이블 u는 그들이 테이블을 많이 볼 수 있도록 제안 u 솔루션은 매우 긴 u 수 있습니다. 봐라 ... 다른 건 너에게 이걸 제안 할 수 있니? –

+0

@Finbarr : 오, 이제 알겠습니다. 아니. 그러나 * 보통 * (아마도 항상 그런 것은 아닙니다), 당신은 루프를 바꿈으로써 근본적인 문제를 해결할 수 있습니다. 그래도 고마워. – pinkgothic

2

이 방법으로 PHP switch 문에서 CASE 선언을 동적으로 생성 할 수 있다고 생각하지 않습니다.

당신이하는 일은 배열의 모든 테이블을 가져온 다음 switch 문 안에서 반복하여 CASE 문을 선언하는 것입니다. 너는 이것을 못해.

이 생성

Parse error: syntax error, unexpected T_FOREACH, expecting T_CASE or T_DEFAULT

+0

pls는 나의 질문에서 동적으로 생성에 의해 의미하는 무슨을 정성 들여 만든다. 나를 잘못 여기에서 얻고있다 아마. –

+0

보십시오 편집, 당신은 당신이 원하는 것을 할 수 없습니다. – Finbarr

+0

+1 고마워 메이트 내가 너의 요점을 잡았어. 사실 프로그래밍 용어에 익숙하지 않다. ... –

1

편집 : 당신은 너무 많은 테이블이 다음 배열에 그 querys을 넣고있는 경우 영업 이익의 의견에 따라, 난이 답변

$query=null; 
    switch($tableName): 
    { 
    case "table1": 
    $query="..."; 
    break; 
    case "table2": 
    $query="..."; 
    break; 
    case "table3": 
    $query="..."; 
    break; 
    } 
    .... 

here goes logic to execute that query 

을 쓰고 있어요 다음과 같이 확인하십시오 :

$arr = array("table1"=>"query1","table2"=>"query2","table3"=>"query3",....); 
$query = $arr[$tableName]; 

여기에 쿼리를 실행하는 로직이 있습니다.

+0

@reddy Saahab 이것은 Joomla 32 테이블 hote hai usme의 경우에 매우 길 수있다. :) lamba ho jayegaa .. Koi aur idea do plsss –

+0

@Parth, 내가 생각할 수있는 다른 방법은 없다. –

관련 문제