Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] switch/case razem z OR
Nightwalker
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

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


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.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Czy manual naprawde Cię gryzie? http://pl.php.net/switch

Ten post edytował wookieb 16.03.2009, 15:06:10
Go to the top of the page
+Quote Post
Nightwalker
post
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

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


I po co te nerwy? W manualu nic o tym nie wspominają a rozwiązanie z komentarzy woła o pomstę do nieba...
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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. ?>
Go to the top of the page
+Quote Post
Nightwalker
post
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

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


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. ?>
Go to the top of the page
+Quote Post
guilty82
post
Post #6





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


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.
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.

Ten post edytował wookieb 16.03.2009, 17:53:21
Go to the top of the page
+Quote Post
guilty82
post
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


Prawda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Metoda wookieb jest prawidłowa
Go to the top of the page
+Quote Post

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: 22.08.2025 - 20:40