Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klamry stosowac czy klamer nie stosowac ?
Forum PHP.pl > Forum > Przedszkole
invx
Mam do Was pytanie. Jak poprawnie zapisywac (zgodnie ze standardami) konstrukcj switcha
tak:
  1. <?php
  2.  
  3. switch ( $_GET['mode'] )
  4. {
  5. case pokaz_tematy;
  6. {
  7. include("kernel/pokaz_tematy.php");
  8. echo pokaz_tematy();
  9. break;
  10. }
  11.  
  12. case pokaz_posty;
  13. {
  14. include("kernel/posty/pokaz_posty.php");
  15. echo pokaz_posty();
  16. break;
  17. }
  18. }
  19.  
  20. ?>


czy moze tak:
  1. <?php
  2.  
  3. switch ( $_GET['mode'] )
  4. {
  5. case pokaz_tematy;
  6.  
  7. include("kernel/pokaz_tematy.php");
  8. echo pokaz_tematy();
  9. break;
  10.  
  11. case pokaz_posty;
  12.  
  13. include("kernel/posty/pokaz_posty.php");
  14. echo pokaz_posty();
  15. break;
  16.  
  17. }
  18.  
  19. ?>


dziala to i to ... w kursie mam bez {}

a moze obydwie formy sa poprawne ? Jaka Wy stosujecie
ens0re
switch" title="Zobacz w manualu php" target="_manual Jak sprawdzisz w manualu to bedziesz wiedział jak poprawnie smile.gif
yavaho
W przypadku switcha te klamry nie są potrzebne. Kod zostaje wykonywany od miejsca gdzie znajduje sie case do momentu znalezienia instrukcji break.
Ale ja mam taki przykład ktorego nie ma w manualu. Czy taki zapis jest poprawny?
  1. <?php
  2. switch ($i) {
  3.  case 0 or 1 or 2 or 3 or 4:
  4.  echo 'blebleble';
  5.  break;
  6.  case 5:
  7.  echo 'ble';
  8.  break;
  9. } 
  10. ?>
Dark Raven
Cytat(yavaho @ 2005-11-25 23:34:48)
Czy taki zapis jest poprawny?

Sprawdź. Jeśli wyskoczy błąd, masz odpowiedź. winksmiley.jpg
ikioloak
Ja to zapisuje tak:
  1. <?php
  2.  
  3. switch ($i) {
  4.  case 0:
  5.  case 1:
  6.  case 2:
  7.  case 3:
  8.  case 4:
  9.  echo 'blebleble';
  10.  break;
  11.  case 5:
  12.  echo 'ble';
  13.  break;
  14. } 
  15.  
  16. ?>
yavaho
No wlasnie nie mam zadnego bledu, kod wykonuje sie zupelnie poprawnie, a takiej formy zapisu nie znalazlem w manualu, wiec dlatego pytam.
invx
w manualu klamer nie ma ale najczesciej jest tam tylko jedna linijka kodu, a w wszelkich standardach kodowania pisze znowu ze nalezy klamry uzywac zawsze, nawet w tedy jak sa opcjonalne ...
luinnar
Gdzie 2 programistów tam 2 teorie. Ja osobiście switch'a używam bez dodatkowych klamr. Dlaczego? Z prostego powodu, jeżeli potrzebne byłyby klamry to po co instrukcje break? Co za dużo to nie zdrowo (ale do if'ów zawsze daje).
ens0re
Jeżeli akurat klamry są zbędne, to po co je dawać, skoro bez nich też kod działa? Jeżeli działa i tak i tak to lepszym sposobem jest ten, pokazany w manualu.
sf
Cytat(ens0re @ 2005-11-26 10:09:27)
Jeżeli akurat klamry są zbędne, to po co je dawać, skoro bez nich też kod działa? Jeżeli działa i tak i tak to lepszym sposobem jest ten, pokazany w manualu.

Stosuje sie pewne standardy, ktore wynikly z kilkuletnich doswiadczen programistow. Za pare lat tez dojdziesz do wniosku, ze tak poprostu jest czytelniej tongue.gif
FiDO
Przenosze na php Poczatkujacy.
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.