2011-10-18 14 views
10

Sono abbastanza abituato alla sintassi Select Case di vb.net che è essenzialmente un'istruzione switch, in cui è possibile eseguire operazioni come e, se corrisponde, eseguirà il caso.Istruzioni switch condizionali in PHP

Come posso fare ciò che chiamerò "istruzioni switch condizionali" poiché non conosco il nome effettivo, in PHP?

Oppure, qual è un modo rapido per gestirlo?

switch($test) 
{ 
    case < 0.1: 
     // do stuff 
     break; 
} 

Questo è quello che ho provato al momento.

+2

Dovrai usare "if-elseif-else". PHP non supporta questa sintassi. – NullUserException

+2

Solo valori scalari consentiti per i casi. –

risposta

22

Penso che tu sia alla ricerca di qualcosa di simile (questo non è esattamente ciò che si vuole, o almeno quello che ho capito è il vostro bisogno):

<?php 

switch (true) { 

case ($totaltime <= 1): 
echo "That was fast!"; 
break; 

case ($totaltime <= 5): 
echo "Not fast!"; 
break; 

case ($totaltime <= 10): 
echo "That's slooooow"; 
break; 
} 

?> 
+0

@BoltClock: cosa fa il vero? – Cyclone

+0

E posso usare i float qui nelle espressioni booleane in modo sicuro? – Cyclone

+0

@Cyclone Sì, puoi usare anche float. –

0

PHP supporta switch statements. E 'quello che volevi?

+0

No, conosco i normali secondi di commutazione. – Cyclone

+0

Vedo, la tua domanda rivista rende più chiaro ora. –

0

ho cercato di aggiungere questo come un commento alla risposta da BoltCock, ma così mi sta dicendo che la sua risposta è bloccato: farò questo un separato (e sostanzialmente ridondante) risposta:

L ' "interruttore (true) "la risposta di BoltCock è molto simile a the following example, che sebbene sia logicamente equivalente a se + else se + else è discutibilmente più bello perché le espressioni condizionali sono allineate verticalmente, ed è pratica standard/accettata in PHP.

Ma la sintassi if + else + di altri è essenzialmente universale tra i linguaggi di scripting e quindi immediatamente leggibile (e gestibile) da chiunque, il che dà anche il mio cenno del capo.

Problemi correlati