Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] przekształcanie elseif w switch/case
Radek41
post
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

  1. <?
  2. $aktualna = 600;
  3. $pkt = $_POST['pkt'];
  4. $zmiana = $pkt - $aktualna;
  5. $suma = $aktualna + $zmiana;
  6.  
  7. if ($pkt == "") echo '';
  8. elseif ($pkt > $aktualna) echo 'Punktow '.$suma.' (<b><span style="color: green;">+'.$zmiana.'</span></b>).';
  9. elseif ($pkt < $aktualna) echo 'Punktow '.$suma.' (<b><span style="color: red;">'.$zmiana.'</span></b>).';
  10.  
  11. ?>


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.

  1. <?
  2. $aktualna = 600;
  3. $pkt = $_POST['pkt'];
  4. $zmiana = $pkt - $aktualna;
  5. $suma = $aktualna + $zmiana;
  6.  
  7. switch ($pkt) {
  8. case $pkt == "":
  9. echo '';
  10. case $pkt > $aktualna:
  11. echo 'Punktow '.$suma.' (<b><span style="color: green;">+'.$zmiana.'</span></b>).';
  12. case $pkt < $aktualna:
  13. echo 'Punktow '.$suma.' (<b><span style="color: red;">'.$zmiana.'</span></b>).';
  14. }
  15. ?>



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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





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 ?

  1. switch($zmienna) {
  2.  
  3. case 'wartosc':
  4. // czynnosc
  5. break;
  6.  
  7. default:
  8. // domyslnie
  9. break;
  10. }


Druga sprawa:
  1. if ($pkt == "") echo '';


A empty ?

Ogólnie:
  1.  
  2. if (!empty($pkt)) {
  3. if ($pkt > $aktualna) {
  4. // wieksza
  5. }else{
  6. // mniejsza
  7. }
  8. }else{
  9. //pusto
  10. }


Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 15:31