Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem ze 'switch' w polaczeniu z 'date()', wybiorcze dzialanie switcha
sirapacz
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.08.2005

Ostrzeżenie: (0%)
-----


1. Jako ze jestem nowym userem na forum - witam wszystkich:)
2. Ucze sie obecnie php i natrafilem na pewien problem ktory nie daje mi spokoju (teoretycznie moglbym olac i isc dalej z materialem ale cholernie mnie zaintrygowal...)
3. Problem polega na tym ze jest sobie funkcja oraz kod ja testujacy:
  1. <?
  2. // kod sprawdzajacy dzialanie funkcji zamieniajacej zwracana wartosc date() na polskie odpowiedniki w postaci wyrazow
  3.  
  4.  
  5. function konwersja ($miesiac){
  6.  
  7. // zadeklarowanie funkcji 'konwersja' która zamieni wartosci 00-12 na slowa
  8.  
  9. switch ($miesiac) 
  10.  
  11. {
  12.  
  13. case '01' : $miesiac='styczen' ; break;
  14. case '02' : $miesiac='luty' ; break;
  15. case '03' : $miesiac='marzec' ; break;
  16. case '04' : $miesiac='kwiecień'; break;
  17. case '05' : $miesiac='maj' ; break;
  18. case '06' : $miesiac='czerwiec' ; break;
  19. case '07' : $miesiac='lipiec' ; break;
  20. case '08' : $miesiac='sierpien' ; break;
  21. case '09' : $miesiac='wrzesien' ; break;
  22. case '10' : $miesiac='pazdziernik' ; break;
  23. case '11' : $miesiac='listopad' ; break;
  24. case '12' : $miesiac='grudzien' ; break;
  25. default : $miesiac = 'blad'; break;
  26. }
  27.  
  28. return $miesiac;
  29.  
  30. }
  31.  
  32.  
  33. $test = konwersja (date(m));
  34. //przypisanie do zmiennej wyniku konwersji i pozniej wyswietlenie w dolnym wierszu
     //aktualnego miesiaca zamienionego na slowo(print na koncu)
  35.  
  36. print (konwersja(01) . konwersja(02) . konwersja(03) . konwersja(04) . konwersja(05) . konwersja(06) . konwersja(07) . konwersja(08) . konwersja(09) . konwersja(10) . konwersja(11) . konwersja(12));
  37. // sprawdzenie wszystkich mozliwosci zamiany czyli od 00-12
  38. print ("<br> $test");
  39. //puszczenie wyniku w zmiennej $test
  40. ?>


Dzialanie tego kodu jest takie: switch przyporzadkowuje wyrazeniom 00-12 slownie miesiace a potem jest wyswietlane slowo dla kazdej wartosci obslugiwanej przez switch. Wszystko pieknie ale to jest wyjscie jakie sie pokazuje na ekranie po odpaleniu:

styczenlutymarzeckwiecieńmajczerwieclipiecbladbladpazdzierniklistopadgrudzien
sierpien

pierwszy wiersz to kolejno dzialanie funkcji konwersja na podane wartosci 01 02...itd

na 08 i 09 gdzie powinien byc sierpien i wrzesien switch nie rozpoznaje z jakiegos magicznego dla mnie narazie powodu wartosci i leci do defaulta wyrzucajac na ekran slowo 'blad'

ale - jak wyciagne to '08' z funkcji date(m) to dziala - co jest pokazane wiersz nizej w wyniku....

probuje dojsc juz od 3h co moze byc przyczyna tego zachowania i niedaje mi to spokoju bo jak na takim prostym skrypcie pakuje sie na taki znajac zycie trywialny blad to przy trudniejszych i skomplikowanych bede wlosy rwal z glowy a nie dojde do rozwiazania....

ten skrypt nie ma jakiegos specjalnego sensu - ucze sie na nim. chce sie dowiedziec co spieprzylem ze wybiorczo jest przekazywana zmienna $miesiac do switcha...

Calosc testuje na najnowszym krasnalu (www.krasnal.tk) pod win98se

TIA
pozdrawiam
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: 23.08.2025 - 15:53