Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z pętla for w instrukcji Switch !
radeksnara
post 28.01.2007, 10:35:38
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2006

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


  1. <?php
  2. $adres=$_SERVER['REQUEST_URI'];
  3. $adres=explode('/',$adres);
  4. $adres=array_reverse($adres);
  5. $dozwolone=array('news','last_cw','wpisz_cw','wpisz_news');
  6. $count=count($dozwolone);
  7. switch ($adres[0]) {}
  8. for ($i=1;$i<$count;$i++)
  9. {
  10. case index.php?menu=$dozwolone[$i]&&wyloguj=1:
  11.  $adresik=explode('&',$adres[0]);
  12.  $adres=$adresik[0];
  13.  break;
  14. }
  15.  
  16. case index.php:
  17.  $adres='index.php?menu=news';  
  18.  break;
  19. default
  20.  $adres=$adres[0];  
  21. }
  22. ?>

Kod ten mi nie dziala wywala error !

Parse error: syntax error, unexpected T_CASE in c:\usr\krasnal\www\user\Kopiafunkcje.php on line 12!
12 linia (case index.php?menu=$dozwolone[$i]&&wyloguj=1:)
Gdzie jest tu blad ?
Pozdrawiam !

Ten post edytował radeksnara 28.01.2007, 10:39:27
Go to the top of the page
+Quote Post
sticker
post 28.01.2007, 10:58:01
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


Cytat(radeksnara @ 28.01.2007, 10:35:38 ) *
  1. <?php
  2. ..
  3. /* tu jest początek i koniec switcha */
  4. switch ($adres[0]) {}
  5. ..
  6. for ($i=1;$i<$count;$i++) -> tu początek instrukcji for
  7. {
  8. /* tu "case" ktory nie jest składową instrukcji for tylko switch */
  9. case index.php?menu=$dozwolone[$i]&&wyloguj=1: 
  10.  $adresik=explode('&',$adres[0]);
  11.  $adres=$adresik[0];
  12.  break;
  13. }
  14. ...
  15. }
  16. ?>


doczytaj jeszcze o instrukcjach switch" title="Zobacz w manualu php" target="_manual i for" title="Zobacz w manualu php" target="_manual bo chyba jeszcze nie do końca pojąłeś ocb.

Powodzenia !


--------------------
Go to the top of the page
+Quote Post
radeksnara
post 28.01.2007, 15:35:26
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2006

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


nierozumiem dlaczego zamykasz klamry switch ! Moglbys mi to jakos wyjasnic? Z manuala niezabradzo umiem korzystac ! A i kod wklejoowy nie dziakla poprawnie nadal wyskakuje blad ...
A i dlaczego case jest poza switch ? Nierozumiem tego kompletnie !
Moze da sie jakos inaczej rozwiazac moj problem?
Go to the top of the page
+Quote Post
Cienki1980
post 28.01.2007, 15:49:48
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Bo kod podany przez sticker nie jest poprawny tylko pokazuje Twoje błędy gdzie zrobiłeś.

Zajrzyj do manuala .. on nie gryzie .. a dużo wyjaśnia.


--------------------
404
Go to the top of the page
+Quote Post
radeksnara
post 28.01.2007, 15:55:19
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2006

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


Cytat
switch ($adres[0]) {}

Te klamry juz poprawawilem!
Ale oco chodzi z tym?
/* tu "case" ktory nie jest składową instrukcji for tylko switch */
Naprawde niewiem co zrobilem w tej linijce blad.
A tak wogle czy mozna uzywac wewnatrz switch pętli for ?
  1. <?php
  2. for ($i=0;$i<$count;$i++){
  3. case "index.php?menu=$dozwolone[$i]&&wyloguj=1":
  4.  $adresik=explode('&',$adres[0]);
  5.  $adres=$adresik[0];
  6.  break;
  7. }
  8. ?>

Czy nie powinno byc tak?

Ten post edytował radeksnara 28.01.2007, 15:59:28
Go to the top of the page
+Quote Post
Cienki1980
post 28.01.2007, 16:24:46
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


A po co Ci wogóle ta pętla for w tym switchu questionmark.gif Tablica $dozwolone ma tylko 4ry elementy, więc możesz śmiało napisać 4 case. Wszystko będzie działać bez problemu i zbędnego mieszania.


--------------------
404
Go to the top of the page
+Quote Post
radeksnara
post 28.01.2007, 16:27:22
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2006

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


Ta narazie jest 4, a ta tablica odpowiada za menu ! Czyli jezeli bede musial zmienic cos w menu to bede musial zmienaic w 2 miejscach a jezeli bede musial dodac cos nowego to tak samo. Wiec dlatego uzywam petli ! Da sie jakos inaczej rozwiazac ten problem ?
Go to the top of the page
+Quote Post
Cienki1980
post 28.01.2007, 16:32:38
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Wykorzystaj może proste i logiczne
  1. <?php
  2. if(strlen($adres[0])==&& $adres[0]=='index.php')
  3. {
  4.  //jakis kod
  5. }
  6. else if(strlen($adres[0])>9)
  7. {
  8.  //tutaj dajesz petle for
  9. }
  10. else 
  11. {
  12.  // a tu ostatnia możliwosc.
  13. }
  14. ?>

To tylko szkielet, ale po odpowiednim doszlifowaniu powinnien zadziałać.


--------------------
404
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 Wersja Lo-Fi Aktualny czas: 16.06.2025 - 19:48