Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Switch. Jak napisac zeby case i default korzystaly z tego samego kodu?
uglukha
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

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


Witam,
uzywam takiego kodu do wyswietlania roznych wersji jezykowych strony, oczywscie kodu w poszczegolnych "case" jest wiecej, wycialem zeby nie zasmiecac przykladu. Moje pytanie to jak to zapisac zeby "case 'polski':" i "default:" korzystalo z tego samego kodu. Bo teraz, gdy zmieniam cos w jezyku polskim, musze tez to zmienic w opcji default i jest to nie potrzebna stratu czasu , a i kod sie wydluza.

  1. <?
  2. switch($_GET['language'])
  3. {
  4. case 'polski':
  5. echo ("<title>tytul polski</title>\n");
  6. include ("include/polski/header.inc");
  7. break;
  8. case 'english':
  9. echo ("<title>tytul english</title>\n");
  10. include ("include/english/header.inc");
  11. break;
  12. default:
  13. echo ("<title>tytul polski</title>\n");
  14. include ("include/polski/header.inc");
  15. break;
  16. }
  17. ?>


z gory dzieki za pomoc!
pozdrawiam!


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Puzi
post
Post #2





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


Spróbuj:
  1. switch($_GET['language'])
  2. {
  3. case 'english':
  4. instrukcja;
  5. break;
  6. case 'polski':
  7. default:
  8. instrukcja;
  9. break;
  10. }
Go to the top of the page
+Quote Post
vokiel
post
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


1. Utworzenie funkcji
2. Zamiana case na tablicę

Ad1.
  1. function pol(){
  2. echo ("<title>tytul polski</title>\n");
  3. include ("include/polski/header.inc");
  4. }
  5.  
  6. switch($_GET['language']){
  7. case 'polski':
  8. pol();
  9. break;
  10. case 'english':
  11. echo ("<title>tytul english</title>\n");
  12. include ("include/english/header.inc");
  13. break;
  14. default:
  15. pol();
  16. break;
  17. }


Ad2.
To dla przykładu jaki masz Ty
  1. $languages = array (
  2. 'polski'=>array('title'=>'Tytul polski','include'=>'include/polski/header.inc'),
  3. 'english'=>array('title'=>'English title','include'=>'include/english/header.inc')
  4. );
  5. if (!empty($_GET['language'])){
  6. if (array_key_exists($_GET['language'],$languages){
  7. echo $languages[$_GET['language']]['title'];
  8. include $languages[$_GET['language']]['include'];
  9. }
  10. }


Ja bym osobiście proponował ujednolicić ścieżki do plików includowanych, tak żeby za każdym razem include wyglądało tak samo, tylko różniło się językiem. Dzięki temu nie musisz zapisywać ścieżki includowania, bo zawsze robisz tak samo:
  1. $languages = array (
  2. 'polski'=>'Tytul polski',
  3. 'english'=>'English title'
  4. );
  5. if (!empty($_GET['language'])){
  6. if (array_key_exists($_GET['language'],$languages){
  7. echo $languages[$_GET['language']];
  8. include 'include/'.$languages[$_GET['language']].'/header.inc';
  9. }
  10. }


--------------------
Go to the top of the page
+Quote Post
#luq
post
Post #4





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


To Ci powinno pomóc
  1. $a = 'polski';
  2.  
  3. switch( $a ){
  4. case 'english':
  5. echo 'english';
  6. break;
  7. case 'polski':
  8. default:
  9. echo 'polski';
  10. break;
  11. }


@edit:
Widzę, że się troszkę spóźniłem

Ten post edytował #luq 26.09.2009, 10:55:52


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
uglukha
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

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


@ Puzi, #luq

dzieki! smile.gif nie myslalem, ze to takie latwe biggrin.gif

@ vokiel

wielkie dzieki! smile.gif racja z tymi sciezkami!


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 23:24