Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zamotka ze zmiennymi globalnymi
Forum PHP.pl > Forum > PHP
ast4roth
Piszę większą stronę, definiuję funkcję która ma za zadanie na przykład dołączać [po sprawdzeniu wszystkiego w bazie danych] plik o nazwie będącej argumentem funkcji. Jest taki kłopot, że teraz wszystkie zmienne tworzone gdzieś dalej w kodzie [już nie bezpośrednio w ciele funkcji] wymagają globalizacji w tejże deklarowanej funkcji. Jest to trochę niewygodne, gdy trzeba wrzucać globala dla około 20 zmiennych, a samo ciało funkcji zajmuje ze 3 linijki. Można by w ogóle całość wrzucić w kod i się tym nie przejmować, ale gdy dołącza się większą ilość plików wymagających zgodności z wartościami w bazie danych, szkoda kopiować i wklejać ten sam kawałek kodu wielokrotnie. Czy można jakoś inaczej załatwić tę sprawę [niekoniecznie bawiąc się w obiekty]?
nevt
możesz zrobić tak: załóż sobie plik 'empty.inc' - pusty - bez żadnego kodu. napisz funcję check_in_db(), np. coś w stylu
  1. <?php
  2. function check_in_db($file_name)
  3. {
  4. // tutaj zrób to swoje sprawdzanie w bazie danych, 
  5. // załóżmy że wynik jest w zmiennej $ok
  6. // ...
  7.  
  8. return ($ok ? $file_name : 'empty.inc');
  9. }
  10. ?>

a potem stosowanie jest już proste, i nie ma problemu z globalami...
  1. <?php
  2. include(check_in_db('jakis_plik_php.inc'));
  3. ?>

jak nazwa pliku będzie ok. to go zainkluduje a jak nie to wciągnie 'empty.inc' co będzie bez wpływu na działanie reszty kodu ...

EDIT: brakowało apostrofów...

powodzenia.
ast4roth
Dzieki wielkie. Faktycznie, gdy funkcja zwraca jedynie nazwe pliku, a nie includuje, problem ze zmiennymi globalnymi nie ma racji bytu. ;]
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.