Czy istnieje sposób użycia operatora "LUB" lub odpowiednika w przełączniku php? Na przykład coś takiego:Jak używać przełącznika "lub" w PHP?
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
Czy istnieje sposób użycia operatora "LUB" lub odpowiednika w przełączniku php? Na przykład coś takiego:Jak używać przełącznika "lub" w PHP?
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
switch ($value)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
ten nazywany jest „upadkiem” bloku przez przypadek. Termin występuje w większości języków implementujących instrukcję switch.
Spróbuj
switch($value) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
nie będę odśwież innych odpowiedzi, ponieważ są one poprawne, ale dodam tylko, że nie można użyć przełącznika do bardziej „skomplikowanych” oświadczenia, np: do sprawdź, czy wartość jest "większa niż 3", "od 4 do 6" itd. Jeśli potrzebujesz czegoś takiego, trzymaj się instrukcji if
lub jeśli jest szczególnie silna potrzeba dla switch
, wtedy możesz z niego korzystać back to front:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
Ale jak powiedziałem, osobiście skorzystam z if
oświadczenie tam.
Najlepszy sposób może być, jeśli masz inne żądanie. Ponadto może być łatwiejsze i bardziej przejrzyste w użyciu.
Przykład:
<?php
$go = $_REQUEST['go'];
?>
<?php if ($go == 'general_information'){?>
<div>
echo "hello";
}?>
Zamiast korzystać z funkcji, które nie będą dobrze pracować z PHP, zwłaszcza gdy masz PHP w HTML.
jak to jest jaśniejsze niż instrukcja switch? –
Jeśli trzeba użyć ||
z switch
to można spróbować:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
Jeśli nie preferowanym rozwiązaniem byłby
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
Kwestia jest taka, że zarówno metoda nie jest skuteczna, gdy do czynienia z duże przypadki ... wyobrazić sobie: 1
do 100
to zadziała idealnie
$r1 = range(1, 100);
$r2 = range(100, 200);
$v = 76;
switch (true) {
case in_array($v, $r1) :
echo 'the value is in range 1 to 100';
break;
case in_array($v, $r2) :
echo 'the value is in range 100 to 200';
break;
}
użyć tego kodu:
switch($a) {
case 1:
case 2:
.......
.......
.......
break;
}
blok nazywany zarówno 1 i 2.
switch ($value)
{
case 1:
case 2:
echo 'the value is either 1 or 2';
break;
}
Proponuję przejść http://php.net/manual/en/control-structures.switch.php (ręczne)
switch ($your_variable)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
wyjaśnienia
Podobnie jak dla wartości, którą należy wykonać pojedyncza instrukcja, można ją umieścić bez przerwy jako , aż do momentu, gdy zostanie znalezione przerwanie, to zostanie uruchomione wykonanie kodu, a jeśli zostanie znaleziona przerwa, to wyjdzie z obudowy przełącznika.
spróbować z tych poniższych przykładach w tym artykule: http://phpswitch.com/
możliwych przypadków Switch:
(I). Prosta instrukcja przełączania
Instrukcja przełącznika jest cudowna i magiczna. Jest to część języka, która pozwala wybierać między różnymi opcjami wartości i uruchamiać różne fragmenty kodu w zależności od ustawionej wartości.
Każda możliwa opcja jest podana przez przypadek w instrukcji switch.
przykład:
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(II). kod Wyznaczanie zasięgu bloki
Główną zastrzegające przełącznika jest to, że każdy przypadek będzie działać na do następnego, jeśli nie zatrzymać go przerwie. Jeśli prostym przypadku wyżej rozszerzony na przypadek 5:
Przykład:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(III). Korzystanie fallthrough wielu przypadkach
Ponieważ przełącznik będzie biec kod aż znajdzie sobie przerwę, to jest dość łatwe do podjęcia koncepcję fallthrough i uruchomić tego samego kodu na więcej niż jednym przypadku:
Przykład:
przypadek 2:
case 3:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(IV). zaawansowane przełączające: Szafy Stan
przełącznik PHP nie tylko pozwala na przełączenie na wartość danej zmiennej: można użyć dowolnego wyrażenia jako jeden z przypadków, o ile daje wartość przypadek do użycia. Jako przykład, oto prosty walidator napisane przy użyciu przełącznika:
Przykład:
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
myślę, że może to pomóc w rozwiązaniu problemu.
Czy masz przypadek użycia rzeczywistego świata dla przykładu (iv)? –
Nie, nie miałem tego teraz @PedroMoreira –
Cieszę się, że polecam jeśli() nad przełącznikiem() w tym przypadku. Ten rodzaj przełącznika tylko zwiększa złożoność, IMO. – moo
Tak, musiałbyś mieć dość nieodparty powód, by wybrać ten styl, ale dobrze jest wiedzieć, że to możliwe. – nickf
Naprawdę cieszę się, że się tego nauczyłem.Za każdym razem, gdy buduję projekt w języku Basic-y, brakuje mi stylu 'switch()' w stylu C, a kiedy pracuję w języku C, naprawdę brakuje mi 'Select Case', który jest naprawdę skrótowy sposób powiedzenia "jest duży blok jeśli, inaczej jeśli, inaczej - jeśli ... tutaj". –