Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: includowanie plików - problem z funkcją
Forum PHP.pl > Forum > PHP
deha21
Witam, mam taki problem że includując do pliku funkcję z drugiego pliku nie chce mi jej wykonywać poprawnie... a może to funkcja jest zła?
Struktura plików:
index.php
/akcje
/akcje/jezyk.php
/akcje/funkcje.php

W pliku index.php mam tak:
  1. require("akcje/jezyk.php");
  2. require("akcje/funkcje.php");
  3.  
  4. menu();


A w pliku funkcje.php jest tak:
  1. function menu() {
  2. echo '<ul id="menu">
  3. <li><a href="#">',$lang['home'],'</a></li>
  4. <li><a href="#">',$lang['faq'],'</a></li>
  5. <li><a href="#">',$lang['contact'],'</a></li>
  6. </ul>';
  7. }


Funkcja jako tako działa i generuje listę ale nie wyświetla $lang. Gdy zaincluduje jezyk.php do funkcje.php to je wyświetla. Ale chciałbym żeby wszystko includowało w jednym pliku. Jak to poprawnie robić?
bim2
Może zmienna $lang nie jest dostępna w menu? Musiałbyś globals użyć. :|
deha21
Jest dostępna w pliku z funkcją która wywołuje menu (ale tylko w przypadku gdy w tym pliku zaincluduje plik z $lang). Z tego co wiem globals są niezbyt bezpieczne?
vermis
to przekaż zmienną do funkcji.
Wywołanie
  1. menu($lang);

oraz definicja
  1. function menu ($lang){...}
deha21
Działa, dzięki. A nie da się tego jakoś usprawić? Bo nie chciałbym cały czas do funkcji ładować $lang. Ma to być na zasadzie szablonu, a nie chciałbym żeby użytkownik musiał za każdym razem przesyłać tego $langa.
bim2
Najlepszym wyjściem jest użycie klas. W takim wypadku nic nie zrobisz. Globals są niebezpieczne tylko jeśli ktoś miałby edytować kod w przyszłości. Ogólnie odradza się je i plewi z nawyków programistów.
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.