Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Dostęp do zmiennej globalnej wewnatrz funkcji

Napisany przez: blackstone 7.11.2018, 21:16:26

Potrzebuje mieć dostęp do zmiennej globalnej ( chodzi o $GLOBALS ) wewnątrz funkcji php i jest z tym problem, bo go tam nie ma. Zmienna ta została zdefiniowana na początku dokumentu przed funkcją i działa porpawnie wszędzie po za jej wnętrzem. Zmienna zawiera niewielka tablice ( ale z inymi typami danych też był problem ). W grę nie wchodzi raczej podanie tej zmiennej normalnie ( za pomocą argumentu funkcji podczas wywołania) ponieważ moja funkcja generuje string z kodem który potem jest wykonywany jako php za pomocą funkcji eval, a chodzi o to by "inteligętnie" uzyskiwać dostęp do danych rekordów tablicy a nie manualnie, stąd ta zabawa eval-em. Ma ktoś jakiąś susgestie jak to rozwiązać?

Napisany przez: viking 7.11.2018, 21:18:50

function () use ($zmiennaZzewnatrz){}

Napisany przez: trueblue 7.11.2018, 21:18:52

Cytat(blackstone @ 7.11.2018, 22:16:26 ) *
Potrzebuje mieć dostęp do zmiennej globalnej ( chodzi o $GLOBALS ) wewnątrz funkcji php i jest z tym problem, bo go tam nie ma. Zmienna ta została zdefiniowana na początku dokumentu przed funkcją i działa porpawnie wszędzie po za jej wnętrzem. Zmienna zawiera niewielka tablice ( ale z inymi typami danych też był problem ). W grę nie wchodzi raczej podanie tej zmiennej normalnie ( za pomocą argumentu funkcji podczas wywołania) ponieważ moja funkcja generuje string z kodem który potem jest wykonywany jako php za pomocą funkcji eval, a chodzi o to by "inteligętnie" uzyskiwać dostęp do danych rekordów tablicy a nie manualnie, stąd ta zabawa eval-em. Ma ktoś jakiąś susgestie jak to rozwiązać?

Na pewno potrzebujesz "inteligętnego" rozwiązania?

Napisany przez: trzczy 9.11.2018, 12:56:48

$GLOBALS
http://php.net/manual/en/reserved.variables.globals.php

Napisany przez: blackstone 10.11.2018, 19:41:49

@trueblue - Na pewno to nie, ale istniały pewne "logistyczne" motywy by się o takie postarać.
__________________________

Problem rozwiązany. Dzięki za pomoc.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)