Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wielokrotny IF - jak to skrócić
torbicki65
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.11.2008

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


Witam
Widziałem kiedyś temat na forum, jednak nie mogę go nigdzie znaleźć, pobocznym wątkiem w temacie było zwrócenie uwagi przez użytkownika na taką konstrukcję

  1. if($a==1 or $a==2 or $a==3) ...


i ów użytkownik podał jakąś skróconą formę tej instrukcji, gdy wykorzystywana jest jedna zmienna.
Czy ktoś z was domyśla się, o co chodzi?
Niestety nie mogę znaleźć, co prawda na algorytmy.pl wyświetla się to, co prawdopodobnie jest moją zagwozdką, ale nie lubię płacić ;>

pozdrawiam
Go to the top of the page
+Quote Post
fiszol
post
Post #2





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


  1. <?php
  2. if ($a <= 3)
  3. {
  4. echo "asd";
  5. }
  6. ?>

http://www.php.net/manual/en/language.oper....comparison.php
Go to the top of the page
+Quote Post
f1xer
post
Post #3





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


@fiszol a jak a będzie równe 0?

jeżeli już to powinno być

  1. if ($a>=1&&$a<=3){
  2. ...
  3. }

pod warunkiem że nie spodziewamy się wartości typu 2.4, możesz też kombinować z in_array lub z switch
to zależy od konkretnej sytuacji.
Go to the top of the page
+Quote Post
flashdev
post
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

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


Cytat(torbicki65 @ 3.09.2009, 01:00:58 ) *
Witam
Widziałem kiedyś temat na forum, jednak nie mogę go nigdzie znaleźć, pobocznym wątkiem w temacie było zwrócenie uwagi przez użytkownika na taką konstrukcję

  1. if($a==1 or $a==2 or $a==3) ...


i ów użytkownik podał jakąś skróconą formę tej instrukcji, gdy wykorzystywana jest jedna zmienna.
Czy ktoś z was domyśla się, o co chodzi?
Niestety nie mogę znaleźć, co prawda na algorytmy.pl wyświetla się to, co prawdopodobnie jest moją zagwozdką, ale nie lubię płacić ;>

pozdrawiam


Być może chodziło o coś na kształt:

  1. if( !($a&-4) ) ...


Z tym że to by odpowiadało takiej instrukcji:
  1. if($a==0 or $a==1 or $a==2 or $a==3) ...


A poniżej mały test działania.
  1. for( $i = -5; $i < 9; $i++ ){
  2. echo $i . ' => ' . !($i&-4) . '<br />';
  3. }
Go to the top of the page
+Quote Post
torbicki65
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.11.2008

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


Eh, podałem zły przykład.
Nie chodzi o konkretne 1,2,3, to mogą być liczby, słowa, cokolwiek, ale chodzi o przyrównanie do jednej zmiennej, żeby nie pisać ciągle czegoś w stylu
  1. if($a=='abc' || $a==1 || $a=='dfdf')


lecz coś w krótszej formie. Dałbym głowę, że gdzieś widziałem ładne, przejrzyste rozwiązanie, coś w stylu zmienna-i po kolei warunki.
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




robisz tablicę i potem if(in_array())
Go to the top of the page
+Quote Post
torbicki65
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 8.11.2008

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


Cytat(Spawnm @ 3.09.2009, 12:42:35 ) *
robisz tablicę i potem if(in_array())


OK, to chyba będzie najrozsądniejsze wyjście, dzięki.
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 Aktualny czas: 22.08.2025 - 12:52