ugrás a tartalomhoz

Függvénybe ágyazott függvényeknél global használata?

laji · 2006. Már. 18. (Szo), 14.09
Sziasztok. A global használatához kérnék segítséget (php4).
Az "elso" függvénybe vannak ágyazva "masodik" és "harmadik" függvények. Az "elso" és "masodik" függvényeknek szükségük van a kinti $valtozo1-re és $valtozo2-re, "harmadik"-nak nem. A "harmadik" önmagán belül meghívja a "masodik"-at.
  1. <?php  
  2. $valtozo1="alma";  
  3. $valtozo2="korte";  
  4. function elso() {  
  5.     global $valtozo1$valtozo2;  
  6.     // használja a két változót  
  7.     function masodik() {  
  8.         global $valtozo1$valtozo2;  
  9.         // használja a két változót  
  10.     }  
  11.     function harmadik() {  
  12.         // Csinál vmit, s ehhez meghívja masodik()-at.  
  13.         $akarmi=masodik();  
  14.     }  
  15. }  
  16. ?>  
Amit szeretnék megtudni:
1. Szükség van-e masodik()-ban megadni a global-t? (Nem hat-e "lefelé", "befelé" is az elso()-ben kiadott "global" parancs?)
2. Szükség van-e harmadik()-ban is megadni a global-t? Neki nem kell, de a benne meghívott masodik()-nak igen.
3. Van-e vmilyen lehetőség arra, hogy rögtön a két változó létrehozásakor elérhetővé tegyem őket minden függvény számára? Az egy kicsit hosszadalmasnak tűnik, hogy ha $valtozo1-re 117-szer van szükségem egy függvényen belül, akkor 117-szer úgy írjam le, hogy $GLOBALS[valtozo1]. Vagy rosszul értem a használatát? A php.morva.net nem sokat ír róla.
Előre is köszönöm a segítséget.
 
1

global és a függvények

Anonymous · 2006. Már. 18. (Szo), 15.38
a global-t ott kell kiadni, ahol konkrétan szeretnél valamit kezdeni magával az értékkel. a harmadik nevű függvénynek szüksége van a változókra? nem. tehát ott nem kell megadni (2.). viszont ahol használni akarod, ott mindenképpen kell, így a masodik nevű függvényben is (1.).

a 3. kérdésre a válasz: nincs lehetőség. ellenben van olyan, hogy define, és van olyan is, hogy paraméter, vagy argumentum. ezek használatát javaslom.

gex
2

3. pont

sayusi · 2006. Már. 18. (Szo), 15.42
Szia!

A harmadik pontot nem értem. Pontosítanád?

Az egészre véleményem, hogy próbáld a problémádra a megoldást. kb 10 percig tart írni egy ilyen példát.

Illetve a http://www.php.net/manual/hu/language.functions.php tudom javasolni.
3

Heuréka - ÁLLANDÓ!

laji · 2006. Már. 18. (Szo), 16.11
Köszönöm mindkettőtök segítségét. Mindenképp nagyon hasznos tudnom azt, hogy ezek szerint csak a függvény létrehozásának, nem pedig meghívásának helyén kell elérhetőnek lenniük a szükséges változóknak.
Jelen esetemre pedig (s ez a válasz Sayusi kérdésére is): utólag tényleg elég kézenfekvő, hogy ha kell nekem egy mindenütt elérhető, s sehol nem módosuló (csak felhasználandó) változó - hát az az állandó... :)

További szép napot!