Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwne zachowanie "switch"
Forum PHP.pl > Forum > Przedszkole
slawko123
  1. <?php
  2.  
  3. require (&#092;"functions.php\");
  4.  
  5. switch($_GET['site'])
  6. {
  7. case 'rejestracja':
  8. $content = new Content('rejestracja');
  9. break;
  10.  
  11. default:
  12. echo &#092;"Brak podanych zasobów w bazie\";
  13. break;
  14. }
  15.  
  16. ?>


Kawałek kodu ze strony, gdzie nigdzie indziej nie obsługuję w żaden sposób danych z $_GET. Dlaczego więc jeśli za pomocą metody GET prześlę zmienną o innej nazwie niż "site" to także pojawi mi się "Brak podanych zasobów w bazie"? Przecież to switch powinno mi chyba obsługiwać tylko zmienną o nazwie "site"?
czachor
Bo masz default. Jeżeli nie ma zmiennej $_GET['site'] (czyli można założyć, że ma każdą inną wartość niż wymienione w case'ach), wykonywany jest kawałek właśnie default.
sendi16
  1. <?php
  2.  
  3. require (&#092;"functions.php\");
  4.  
  5. if(isset($_GET['site']))
  6. {
  7.   switch($_GET['site'])
  8.   {
  9.     case 'rejestracja':
  10.     $content = new Content('rejestracja');
  11.     break;
  12.  
  13.     default:
  14.     echo &#092;"Brak podanych zasobów w bazie\";
  15.     break;
  16.   }
  17. }
  18.  
  19. ?>


w tej chwili tekst "Brak podanych zasobów w bazie" wyswietli ci tylko wtedy gdy $_GET['site'] jest ustawione, w innych przypadkach ci niczego nie wyswietli
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.