Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] switch/case razem z OR
Forum PHP.pl > Forum > Przedszkole
Nightwalker
Witam,
Chcę aby case reagował na więcej niż jeden string, coś jak:

  1. <?php
  2.  
  3. if( $zmienna == "test" || $zmienna == "t" )
  4. ...
  5. ?>


Jak takie coś uzyskać przy użyciu switch oraz case?

Z góry dzięki.
wookieb
Czy manual naprawde Cię gryzie? http://pl.php.net/switch
Nightwalker
I po co te nerwy? W manualu nic o tym nie wspominają a rozwiązanie z komentarzy woła o pomstę do nieba...
wookieb
Cytat(Nightwalker @ 16.03.2009, 16:05:11 ) *
I W manualu nic o tym nie wspominają

Bardzo, bardzo słabo czytasz
  1. <?php
  2. switch ($i) {
  3. case 0:
  4. case 1:
  5. case 2:
  6.    echo "i is less than 3 but not negative";
  7.    break;
  8. case 3:
  9.    echo "i is 3";
  10. }
  11. ?>
Nightwalker
Ktoś tu nie potrafi czytać ze zrozumieniem...
Wiem jak działa switch. Moje pytanie brzmiało "jak użyć OR (||) w case".

Czyli:
  1. <?php
  2. switch( $action ) {
  3.     case( $action == "tak" || $action == "tak" || $action == "t" ):
  4.          ...
  5.          break;
  6. }
  7. ?>
guilty82
Twoje
  1. <?php
  2. if( $zmienna == "test" || $zmienna == "t" )
  3. ?>

=
  1. <?php
  2. switch($zmienna) {
  3. case 'test': ...; break;
  4. case 't': ...; break;
  5. // w miejsce kropek te same polecenia
  6. }
  7. ?>

Tak jak chcesz chyba się nie da, trzeba rozpisać osobne case dla wszystkich warunków.
wookieb
Dobra ludzie....
Nightwalker...
Kod
switch($action)
{
case 'top':
case 't':
case 'a':
// twoj kod
break;
}

TO zastępuje twoje OR
A jak chcesz w twoim schemacie to
Kod
switch(true)
{
case ($action == "tak"||$action == "tak"||$action == "t" ):

break;
}


Cytat
// w miejsce kropek te same polecenia

Naprawdę nie wiem kto cię nauczył tych przedpotopowych metod. Po to jest switch aby sobie ułatwiać życie.
guilty82
Prawda smile.gif Metoda wookieb jest prawidłowa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.