Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Switch, Case
Forum PHP.pl > Forum > Przedszkole
DREEMus
Witam,

czy taki zapis jest dozwolony (ogólnie rzecz ujmując) ?
  1. switch( $zmienna ) {
  2. case 1 : {
  3. instrukcja1();
  4. instrukcja2();
  5. instrukcja3();
  6. break;
  7. }
  8. case 2 : {
  9. instrukcja1();
  10. instrukcja2();
  11. break;
  12. default : exit();
  13. }


Czekam na wszelakie sugestie smile.gif
nekomata
Po 1. Masz klamry w złych miejscach , nie zamknąłeś case 2 lub w złym miejscu default postawiłeś i zapomniałeś switcha zamknąć.
Po 2. Trudno samemu sprawdzić?Xampp na localu i sprawdzasz sam.
Po 3. Wyręczyłem Cie , rzadko mi się to zdarza wiec masz szczęśliwy dzień biggrin.gif.

A o to wyniki moich testów (pozwoliłem sobie zamienić funkcje na echo , bądź co bądź to bez znaczenia , zapodałem kod wiec możesz sprawdzić sam) :
  1. <?php
  2.  
  3. $zmienna = $_GET['test'];
  4.  
  5. switch( $zmienna ) {
  6. case 1 : {
  7. echo 'to jest 1 <br/>';
  8. echo 'to tez jest 1<br/>';
  9. echo 'i to rowniez jest 1<br/>';
  10. break;
  11. }
  12. case 2 : {
  13. echo 'to juz nie jest 1<br/>';
  14. echo 'To tez juz nie jest 1<br/>';
  15. break;
  16. }
  17. default : exit();
  18. }
  19.  
  20. ?>

Działa, wiec postanowiłem sprawdzić bez klamer(chciałem napisać "klamr" ale o dziwo słownik w Operze twierdzi iż jest to błąd, zdecydujcie sami)wewnetrznych oczywiście.. zewnętrzne zostają, czyli następujący kod :
  1. <?php
  2.  
  3. $zmienna = $_GET['test'];
  4.  
  5. switch( $zmienna ) {
  6. case 1 :
  7. echo 'to jest 1 <br/>';
  8. echo 'to tez jest 1<br/>';
  9. echo 'i to rowniez jest 1<br/>';
  10. break;
  11. case 2 :
  12. echo 'to juz nie jest 1<br/>';
  13. echo 'To tez juz nie jest 1<br/>';
  14. break;
  15. default : exit();
  16. }
  17.  
  18. ?>

Również działa, wiec klamry są zbędne, dany case będzie działał aż nie napotka break; proste.Ale serio.. zajęło mi to bodajże 5 minut, trudno było to zrobić samemu?
DREEMus
@nekomata,

1. Kod pisałem o 4:11 smile.gif mogły znaleźć się w nim błędy smile.gif
2. Look at footer smile.gif
3. wink.gif

Ciężko to określić o co mi dokładnie chodziło smile.gif chciałem się dowiedzieć czy taki zapis jest OK i czy ktoś mógłby zaprezentować coś lepszego.
Dzięki za odp.
darko
Ogólnie rzecz ujmując Twój zapis jest z kilku powodów niepoprawny. http://php.net/manual/en/control-structures.switch.php
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.