Autor Zpráva
Ondřej Machala
Profil *
Při konstrukce poměrně rozsáhlé funkce jsem v samém závěru narazil na problém s návratem proměnné z funkce. Nebudu zde psát celý zdrojový kód, ale konstrukce je asi taková:

<?
function test(){ $a = 5; return $a; }

test();
print $a;
?>

Po vyvolání funkce testy by se do paměti měla uložit hodnota proměnné A, a následně by měla být vypsána. Avšak to se neděje. Nevíte někdo v čem je problém?
koudi
Profil
Nevíte někdo v čem je problém?
V tom, že jsi zjevně nedostatečně nastudoval teorii kolem funkcní.

$a je tady pouze lokální proměnná s platností pouze při výkonu dané fce.
Ondřej Machala
Profil *
No samozřejmě nefunguje ani: global $a;
Jinak bych zde ten dotaz nepsal!
sicario
Profil
spravne pouziti je tedy
$a = test();
print $a;
Mastodont
Profil
No samozřejmě nefunguje ani: global $a;

IMHO bys to $a v hlavním kódu musel použít ještě před voláním té funkce. Nebo máš vypnuté register_globals.

Hlavně máš ale ideově blbě tu konstrukci, proč nepoužít přímo print test(); ??
Ondřej Machala
Profil *
sicario: dík, nenapadlo mě volat funkci v rámci proměnné.

Mastodont: Protože kód který jsem psal byl pouze ukázkový. Ve zkutečnosti funkce vrací dvourozměrné pole
Joker
Profil
volat funkci v rámci proměnné
Takhle to zní jak nějaká alchymie, ve skutečnosti to není nic jiného, než prosté přiřazení výsledku funkce do proměnné ;-)
nightfish
Profil
...prostě nic, co by se člověk nedočetl v PHP seriálu na Linuxsoftu (15. díl, příznačně pojmenovaný "Funkce")

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