Autor | Zpráva | ||
---|---|---|---|
Ondřej Machala Profil * |
#1 · Zasláno: 7. 10. 2007, 18:05:17
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 |
#2 · Zasláno: 7. 10. 2007, 18:08:02
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 * |
#3 · Zasláno: 7. 10. 2007, 18:09:41
No samozřejmě nefunguje ani: global $a;
Jinak bych zde ten dotaz nepsal! |
||
sicario Profil |
#4 · Zasláno: 7. 10. 2007, 18:20:54
spravne pouziti je tedy
$a = test(); print $a; |
||
Mastodont Profil |
#5 · Zasláno: 7. 10. 2007, 18:24:17
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 * |
#6 · Zasláno: 7. 10. 2007, 18:27:12
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 |
#7 · Zasláno: 7. 10. 2007, 18:29:57 · Upravil/a: Joker
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 |
#8 · Zasláno: 7. 10. 2007, 19:26:39
...prostě nic, co by se člověk nedočetl v PHP seriálu na Linuxsoftu (15. díl, příznačně pojmenovaný "Funkce")
|
||
Časová prodleva: 17 let
|
0