Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z funkcją
Forum PHP.pl > Forum > Przedszkole
Madras
Cześć, postanowiłem przepisać źródło swojej strony w celu zoptymalizowania jej działania.
Najpierw zdefiniowałem zmienne i tablice:
  1. $id = $_GET['id'];
  2. if($id=='') $id='0';
  3. $texts = array(
  4. 0=>'Strona główna',
  5. 1=>'Historia',
  6. 2=>'Zawodnicy',
  7. 3=>'Galeria',
  8. 4=>'Trenerzy',
  9. 5=>'Multimedia',
  10. );
  11. $files = array(
  12. 0=>'news',
  13. 1=>'historia',
  14. 2=>'zawodnicy',
  15. 3=>'gallery',
  16. 4=>'trainers',
  17. 5=>'multimedia',
  18. );

Następnie napisałem funkcję:
  1. function menu_item($menu_id,$id)
  2. {
  3. if($menu_id==$id) return '<a class="active">'.$texts[$menu_id].'</a>';
  4. else return '<a href="index.php?id='.$menu_id.'" class="menulink">'.$texts[$menu_id].'</a>';
  5. }

i odnośnik w środku kodu:
  1.  
  2. <?php echo menu_item(0,$id); ?><br>
  3. <?php echo menu_item(1,$id); ?><br>
  4. <?php echo menu_item(2,$id); ?><br>
  5. <?php echo menu_item(3,$id); ?><br>
  6. <?php echo menu_item(4,$id); ?><br>
  7. <?php echo menu_item(5,$id); ?>

Niestety efekt jest taki, że funkcja z jakiegoś powodu nie wyświetla tych napisów.
Oto fragment kodu z firefoxa po stornie klienta:
  1. <a class="active"></a><br>
  2. <a href="index.php?id=1" class="menulink"></a><br>
  3. <a href="index.php?id=2" class="menulink"></a><br>
  4. <a href="index.php?id=3" class="menulink"></a><br>
  5. <a href="index.php?id=4" class="menulink"></a><br>
  6. <a href="index.php?id=5" class="menulink"></a>


Za pomoc w odnalezieniu błędu będę bardzo wdzięczny ;-)
nospor
$texts nie jest widziane w funkcji. Poczytaj w manualu o zasięgu zmiennych
blooregard
Tablice nie są widoczne globalnie, musisz je przekazać do funckji.
Madras
Dzięki!
Poprawiłem błędy w ten sposób:
  1. function menu_item($menu_id,$id,$texts,$files)

  1. <?php echo menu_item(0,$id,$texts,$files); ?>
itd...
I zadziałało! Tak jak mówił nospor rzeczywiście powinienem poczytać o zasięgu zmiennych, bo w programowaniu właśnie z tym mam najczęściej problem.
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.