Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]czyszczenie/usuwanie zmiennych z includowanego pliku
Forum PHP.pl > Forum > Przedszkole
sweter
Witam, 

w pliku index.php dołączam plik:

  1.  
  2. include_once('./plik.php');
  3.  


Po dołączeniu pliku, chciałbym usunąć lub wyczyścić wszystkie zmienne i tablice, które były używane w includowanym pliku.

Czy jest to w ogóle możliwe?

Pacio
Sprawdz cos takiego:

  1. // pobranie listy wszystkich zmiennych przed includem pliku
  2. $wszystkieZmiennePrzed = get_defined_vars();
  3.  
  4. // globalne zmienne tworzone przez PHP
  5. $doUsuniecia = array('GLOBALS', '_ENV', 'HTTP_ENV_VARS', '_POST', 'HTTP_POST_VARS', '_GET', 'HTTP_GET_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_SERVER', 'HTTP_SERVER_VARS', '_FILES', 'HTTP_POST_FILES', '_REQUEST');
  6.  
  7. // usuniecie globalnych
  8. foreach ( $doUsuniecia as $superGlobalna ) {
  9. unset($wszystkieZmiennePrzed[$superGlobalna]);
  10. }
  11.  
  12. // include pliku
  13. include('zmienne.php');
  14.  
  15. // pobranie listy wszystkich zmiennych po includowaniu
  16. $wszystkieZmiennePo = get_defined_vars();
  17.  
  18. // usuniecie globalnych
  19. foreach ( $doUsuniecia as $superGlobalna ) {
  20. unset($wszystkieZmiennePo[$superGlobalna]);
  21. }
  22.  
  23. // usuniecie utworzonych teraz
  24. unset($superGlobalna, $doUsuniecia);
  25.  
  26. // roznica miedzy lista zmiennych przed i po includowaniu
  27. $roznica = array_diff($wszystkieZmiennePo, $wszystkieZmiennePrzed);
  28.  
  29. // usuniecie utworzonych teraz
  30. unset($roznica['doUsuniecia'], $roznica['wszystkieZmiennePrzed'], $roznica['superGlobalna']);
  31.  
  32. // pobranie nazw zmiennych z roznicy
  33. $dodane = array_keys($roznica);
  34.  
  35. // usuwanie zmiennych zaincludowanych
  36. foreach ( $dodane as $zmienna ) {
  37. unset($$zmienna);
  38. }
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.