Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Izolowane includowanie
Forum PHP.pl > Forum > PHP
8rol
Mam główny plik BAZA.php (który uruchamiany jest za pomocą crona) i zadaniem tego pliku jest wywołanie innych plików PHP - 1.php, 2.php, ... i tak powiedzmy do 100.php.

Dotychczas robiłem to w ten sposób, iż plik BAZA.php includował te pliki dzieci. Jednak po czasie odkryłem problem, który polega na kolizji tych samych nazw zmiennych pomiędzy różnymi plikami. Zatem moje pytanie jest takie, w jaki sposób za pomocą jednego pliku głównego wywołać te wszystkie pozostałe, w jaki sposób aby jeden plik, nie miał wpływu na drugi. Wiem, że można zrobić to za pomocą exec()'a itp., ale o ile to możliwe szukam innego rozwiązania.
redeemer
No rozwiązałeś to chyba na jeden z najgorszych możliwych sposobów, ale jak koniecznie chcesz obejść to na szybko to wpakuj include wewnątrz funkcji, dzięki temu zakres widoczności zmiennych z plików 1.php, 2.php będzie ograniczony tylko do tej funkcji, czyli:
  1. function my_include($fname) {
  2. include($fname);
  3. }
  4. ...
  5. my_include('1.php');
  6. my_include('2.php');
  7. ...
To się uda pod warunkiem, że nie masz tam większych kombinacji, ale ciężko powiedzieć bez kodu źródłowego.
8rol
Dzięki, pomysł z includowaniem każdego pliku wywołując w tym celu ponownie funkcję wydaję się być OK.

Ale oczywiście zapytam również, jakie rozwiązanie tego problemu proponowałbyś, nawet gdyby wymagało to gruntownej przebudowy całości?
arrtxp
Te podane rozwiązanie, rozwiąże Twój cały problem. Nic nie musisz zmieniać, choć includowanie 100 plików... to wada.
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.