Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] switch/case razem z OR
Nightwalker
post 16.03.2009, 15:03:24
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
 
Start new topic
Odpowiedzi (1 - 7)
wookieb
post 16.03.2009, 15:06:01
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 16.03.2009, 16:05:11
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 16.03.2009, 16:07:58
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 16.03.2009, 17:20:07
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 16.03.2009, 17:44:45
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 16.03.2009, 17:48:02
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 16.03.2009, 17:56:51
Post #8





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

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


Prawda smile.gif Metoda wookieb jest prawidłowa
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:15