Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wielokrotny IF - jak to skrócić
Forum PHP.pl > Forum > Przedszkole
torbicki65
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
fiszol
  1. <?php
  2. if ($a <= 3)
  3. {
  4. echo "asd";
  5. }
  6. ?>

http://www.php.net/manual/en/language.oper....comparison.php
f1xer
@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.
flashdev
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. }
torbicki65
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.
Spawnm
robisz tablicę i potem if(in_array())
torbicki65
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.
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.