Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z pętla for w instrukcji Switch !
Forum PHP.pl > Forum > Przedszkole
radeksnara
  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 !
sticker
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 !
radeksnara
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?
Cienki1980
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.
radeksnara
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?
Cienki1980
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.
radeksnara
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 ?
Cienki1980
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ć.
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.