Autor Zpráva
Radim24
Profil
Zdar,
chci se zeptat jestli jste se někdo setkal s problémem, že v nějaké fnc vytvoříte globální proměnnou a ona, až existuje v poli $GLOBALS, nejde zpřístupnit jinak než přes pole $GLOBALS.

Čili taková situace: Pomocí eval() zpracovávám proměnnou $_POST["step"].

(začátek funkce)
global $step;
$step=$_POST["step"]; // pomocí global
(konec funkce)

(volám funkci)
(zpřístupňuji proměnnou)
Print_r($GLOBALS["step"]); // hodnota úspěšně uložena v poli $GLOBALS
echo $step.""; // zde se nic nezobrazuje

Víte v čem může být problém? Díky
joe
Profil
global $step;
echo $step;
Radim24
Profil
joe
Hele v té funkci je to v pohodě, uvnitř se to zobrazuje, ale vně ne. Jsem z toho volaký zmetený.

EDIT:
Ještě dodám, že vše se nachází v includovaném souboru s klíčovými funkcemi. Všechny ostatní funkce běží bez problému a proměnné se daří zpřístupnovat z hlavního scriptu. A přesto tu existuje paralela s dalším problémem. V hlavním skriptu jsem se rozhodl přesunout strukturu SWITCH: ENDSWITCH; do jiného souboru a includovat ho. V tomto souboru však nejdou načíst ani globální proměnné, ani normální proměnné ani funkce, které již byly načteny v hlavním spouštěcím scriptu. Mám pocit, že se mi tohle stalo poprvé a nedává to vůbec smysl.
keeehi
Profil
Radim24:
Nemohla se mezitím přepsat? Já v této konstrukci jinak chybu nevidím.
joe
Profil
Zvláštní :-)

Zkus poslat celý kód.
Radim24
Profil
Problém vyřešen.

Řešení bylo jako vždycky banální. Nějak jsem se ztratil ve vlastním kódu a našel jsem dvě chyby!

1) vložil jsem nějakou jinou funkci do jiné funkce místo přední (vůbec jsem si nevšiml kam to píšu)
2) a to samé nastalo když jsem volání funkce napsal omylem do jiné funkce místo mimo ni... Takže jelikož v této funkci nebyla proměnná deklarována jako global nemohl jsem ji vidět... Příště - lépe se dívat kam co píšu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0