Bir anahtar case döngü kullanırken, i durumlarda yineleme döngüsü için kullanabilirsiniz?

3 Cevap php

In PHP, While using a switch case loop, can i use the for loop for iterating the cases? for example

switch .....

foreach($xyz as $abc)

{
 CASE:$abc
}

default;

UPDATE

Ben DB değerini getiriliyor ediyorum, bu değer "davayı" Ben tablo adına göre belirli bir sorguyu yürütmek isteyen kullanarak, tablonun adıdır ..

Bu mümkün mü?

3 Cevap

Muhtemelen sadece foreach içine switch deyimi koymak istiyorum?

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;
    }
}

Alternatif olarak, bir anahtar, okumak uzakta bir switch giden ve bir dizi güçlü if kullanarak düşünün, dynamically yaratabilir, özellikle eğer o kadar kolay değil Her ne yapmak istediğinizi case:

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

Diziniz unsurları bir yeri olsa bile bu, çok daha okunabilir.

Ben dinamik bu şekilde PHP switch ifadeleri CASE bildirimleri oluşturmak olduğunu sanmıyorum.

Ne yapıyorsun bahsediyorsun sonra otomatik OLGU ifadeleri bildirmek için bir switch deyimi içinde içlerinden döngü, bir dizi içinde tüm tabloları oluyor. Bunu yapamazsın.

Bu üretir:

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

EDIT: OP'ın yorumlarına göre, ben bu cevabı yazıyorum

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

here goes  logic to  execute that query

Eğer çok fazla tablo varsa, bu gibi dizi kontrol olanlar querys koymak

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

Burada sorguyu yürütmek için mantık gider