![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 28.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
zrobiłem taki banalny skrypt, który porównuje liczbę 600, zapisaną w zmiennej $aktualna ze wprowadzoną wartością $pkt i następnie pokazuje jak $aktualna się zmieniła. Wygląda to tak
I wszystko dla mnie jest OK, osiągnąłem oczekiwany przeze mnie efekt. Ale nurtuje mnie czy można to samo zapisać wykorzystując instrukcję warunkową switch/case. Wykombinowałem coś takiego, co działa źle.
I teraz moje pytanie - czy powyższą instrukcję zapisaną za pomocą elseif można w jakiś sposób zapisać wykorzystując switch/case? A jeśli tak, to w jaki sposób poprawić to co napisałem wyżej? Dziękuję z góry, Pozdrawiam Ten post edytował Radek41 30.01.2010, 18:23:27 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 28.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Bo sprawdzanie w case musisz umieścić w nawiasach, tzn.
Mimo wszystko, podczas gdy używając if i nic nie wprowadzając do formularza ($pkt), nic się nie wyświetla - zgodnie z to używając switch/case, pokazuje się "Punktow 0 (+-600).Punktow 0 (-600)." naraz, czyli omija nie tylko:
Ale także źle interpretuje pozostałe warunki. Ten post edytował Radek41 30.01.2010, 19:32:40 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
No ale ja mimo wszystko poszedłbym w stronę zoptymalizowania if a nie przerabiania tego na switch bo to IMHO jest bez sensu.
Ja bym to zrobił tak:
Na tę chwilę wydaje mi się to najprostszym rozwiązaniem. 1. Sprawdzamy czy $_POST['pkt'] nie jest puste. Jeśli tak to robimy sprawdzenie. 2. Tu wrzucamy kod który się wykona gdy jednak będzie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 28.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za kod, napewno z niego skorzystam. (IMG:style_emoticons/default/smile.gif)
Nawet nie chciałem korzystać ze switch/case, intryguje mnie tylko, czy da się to w ten sposób zapisać. (IMG:style_emoticons/default/tongue.gif) Ten post edytował Radek41 30.01.2010, 19:54:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A umiecie używać switch ?
Druga sprawa: A empty ? Ogólnie:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
No wszystko fajnie tylko twój skrypt z if'ami nie uwzględnia jednej, chyba najważniejszej rzeczy a mianowicie:
[...]i następnie pokazuje jak $aktualna się zmieniła. bo else wykona się nawet jak będą identyczne, więc i tak trzeba dodać jeszcze jeden warunek. Można by pokombinować z operatorem różności "<>" ale z tego co widzę to autor chce uzyskać różny kolor w zależności czy $aktualna jest mniejsza czy większa. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 28.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
No wszystko fajnie tylko twój skrypt z if'ami nie uwzględnia jednej, chyba najważniejszej rzeczy a mianowicie: bo else wykona się nawet jak będą identyczne, więc i tak trzeba dodać jeszcze jeden warunek. Można by pokombinować z operatorem różności "<>" ale z tego co widzę to autor chce uzyskać różny kolor w zależności czy $aktualna jest mniejsza czy większa. Dodałem już to wcześniej, tutaj wstawiłem troszkę skrócony kod. (IMG:style_emoticons/default/winksmiley.jpg) Mimo wszystko dziękuję za zwrócenie na to uwagi. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 19:41 |