2011-10-18 18 views
10

Jestem całkiem przyzwyczajony do składni vb.net Select Case, która jest w istocie instrukcją switch, w której można robić rzeczy takie jak Case Is > 5 i jeśli to się zgadza, to wykona ten przypadek.Warunkowe instrukcje przełączników w PHP

Jak mogę zrobić to, co nazywam "warunkowymi instrukcjami przełączania", ponieważ nie znam rzeczywistej nazwy w PHP?

Albo, jaki jest szybki sposób zarządzania tym?

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

Tak właśnie próbowałem.

+2

Będziesz musiał użyć 'if-elseif-else'. PHP nie obsługuje tej składni. – NullUserException

+2

Tylko wartości skalarne dozwolone w przypadkach. –

Odpowiedz

22

myślę szukasz czegoś takiego (to nie jest dokładnie to, co chcesz, a przynajmniej to, co rozumiem, to potrzeba):

<?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: Co robi prawda? – Cyclone

+0

Czy mogę bezpiecznie używać tu elementów pływających w wyrażeniach logicznych? – Cyclone

+0

@Cyclone Tak, możesz również użyć float. –

0

PHP obsługuje switch statements. Czy tego właśnie chciałeś?

+0

Nie, znam normalne sekundy przełączania. – Cyclone

+0

Rozumiem, twoje zmienione pytanie sprawia, że ​​teraz jest jaśniejsze. –

0

Próbowałem dodać to jako komentarz do odpowiedzi przez BoltCock, ale jak mówi mi, że jego odpowiedź jest zablokowany więc zrobię to osobny (i zasadniczo nadmiarowe) Odpowiedź:

„przełącznik (true) "odpowiedź od BoltCocka jest podobna do the following example, co logicznie jest równoważne, jeśli + else, jeśli + else jest prawdopodobnie piękniejsze, ponieważ wyrażenia warunkowe są wyrównane w pionie i jest standardową/akceptowaną praktyką w PHP.

Ale składnia if + else if + else jest w zasadzie uniwersalna dla wszystkich języków skryptowych i dlatego jest natychmiast czytelna (i możliwa do utrzymania) przez każdego, co daje jej również mój ukłon.

Powiązane problemy