Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Coś typu global all; w funkcji
Forum PHP.pl > Forum > PHP
LamaMASTER
Witam,
Przypuśćmy, że mam funkcję, w której chcę korzystać ze wszystkich wcześniej użytych zmiennych. Przy wpisywaniu jej jako listy po przecinku po global trochę by tego było. Czy da się jakoś zrobić tak, żeby zglobalizowało mi w funkcji wszystkie użyte wcześniej zmienne? Coś typu global all; Robiłem już global $_GET, $_POST, ale nie mogę używać i tak nadal wszystkich zmiennych...
mike
Nie da się.
Zresztą to któtko mówiąc głupi pomysł. Po co coś takiego robić, po to wprowadzili zasiąg zmiennych, żeby było wygodniej. Więc po co się uwsteczniać?
LamaMASTER
No dobra - więc jak mam zwiększyć zasięg zmienny na globalny przy wyłączonym register_globals i tylko dla danej funkcji?
mike
Ale po co chcesz to zrobić?
Cóż to za funkcja, która potrzebuje wszystkich zmiennych, jakie się pojawiły?
tomekp
Zgadzam się z tym co napisał mike_mech.
Napisz co chcesz osiągnąć to coś wymyślimy winksmiley.jpg
LamaMASTER
Otóż problem w tym, że mam zadeklarowanych bardzo dużo zmiennych z całego skryptu, a akurat funkcja ta parsuje system szablonów, który do zwrócenia wyniku potrzebuje wartości wszystkich użytych zmiennych, bo inaczej nic nie zwróci. Musiałbym dodać bardzo dużo tych zmiennych do global, żeby to działało jak trzeba, a w dodatku, gdybym chciał użyć tego systemu w innym skrypcie to też musiałbyml dodawać zmienne z innego skryptu do tej funkcji sad.gif
dr_bonzo
Wrzucenie (trzymanie) wszystkiego do tablicy (i indeksowanie nazwa) ci nie wystarczy?
anopak
hmm, może coś takiego:

  1. <?php
  2. foreach($GLOBALS as $var => $value) $$var=$value;
  3. ?>
LamaMASTER
Cytat
Wrzucenie (trzymanie) wszystkiego do tablicy (i indeksowanie nazwa) ci nie wystarczy?

To nie wchodzi w grę, skrypt jest ogromny.

anopak - sprawdzę to winksmiley.jpg
Neotion
$GLOBALS zawiera referencję do samej siebie w środku więc musisz jakoś to obsłuzyć pozatym... Pisałem kiedyś pseudo debugger który zczytywał właśnie w ten sposób zmienne, działa w hermetycznych warunkach ale się wiesza przy większych obiektch i nie chce mi się go debugować póki co. Kiedyś przyjdzie na niego czas tongue.gif.

--EDIT--
Uznajcie to za OT nie doczytałem posta powyżej, sorka.
anopak
a:

  1. <?php
  2. foreach($GLOBALS as $var => $value) $$var=&$GLOBALS[$var];
  3. ?>
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.