Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Operacje na SWITCH
ed3k
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.03.2008

Ostrzeżenie: (0%)
-----


Witam!

Mam pytanie odnosnie operacji na switch (o ile takie sa w ogole mozliwe). Caly schemat wyglada nastepujaco

switch ($pytanie){
case 1:
...;
break;
case ...;

case x:
if (pytanie2)
costam;
else $pytanie=404;

break;
case 404:
operacje w wyniku bledow;
break;
}

czy jest mozliwe 'przeskoczenie' z CASE X w momencie, gdy pytanie2 jest nieprawdziwe, tak aby skrypt wykonal operacje przypisane CASE 404?

Jesli nie, to sa jakies techniki, aby nie powielac kodu z CASE 404 w momencie wystapienia bledow przy innych wynikach $pytanie ?

Ten post edytował ed3k 8.07.2008, 18:04:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cbagov
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Mozesz wkleic - sprawdzilem i zdaje mi sie, ze dziala. Tylko pilnuj warunku i licznika.

Kod
<?PHP

$pytanie  = 304;   // zaczynamy od tego
$pytanie2= false; // jakis IF test rozgaleziajacy
$warunek= false; // zabezpieczenie wyjscia z petli lub spelniony warunek testu

$ctr = 0;  // licznik na wszelki wypadek albo okreslona ilosc testow

while( !$warunek || $ctr==5 ) {
    switch ($pytanie) {
    case 1:
        echo "case 1<BR>";
        break;
    case 304:
       {
       echo "case 304<BR>";    
       if ($pytanie2)
         {
         echo "never here<BR>";
         }
         else
            {
            $pytanie = 404;
            break 1;
            }
      }
    case 390:
       echo "case 390<BR>";
       break;        
    case 404:
       echo "case 404<BR>";
       $warunek = true;     // !
       break;          

    default:
      {
      echo "DEFAULT<BR>";    
      break;
      }
  }

$ctr++;
echo "Loop: ".$ctr."<BR>";
}

echo "end<BR>";
exit;


?>


Ten post edytował cbagov 8.07.2008, 22:55:51
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 01:48