PHP kézikönyv
Előző
Következő
Ez a függvény arra szolgál, hogy egy tömb tartalma alapján változókat helyezzen el az aktuális szimbólumtáblában.
A paraméterként kapott var_array tömb kulcsait tekinti a változók neveinek és a tömbelemek értékeit a változók tartalmának.
Minden kulcs-érték párból készül egy változó a szimbólumtáblában, az extract_type és prefix paraméterektől függően.
Megjegyzés:
PHP 4.0.5-től kezdve a beillesztett változók számával tér vissza a függvény.
Megjegyzés:
EXTR_IF_EXISTS és EXTR_PREFIX_IF_EXISTS 4.2.0 verzótól használhatók.
Megjegyzés:
EXTR_REFS 4.3.0-tól használható.
Az extract() megvizsgál minden kulcsot (indexet), hogy az lehet-e egy érvényes változónév vagy sem, és hogy ilyen nevű változó létezik-e már a szimbólumtáblában (ütközés).
Az érvénytelen változónevek és ütközések az extract_type Az érvénytelen változónevek és ütközések az extract_type paraméterben megadottak szerint lesz kezelve.
Lehetséges értékei:
Ütközéskor felülírja a már létező változót.
Ütközéskor nem írja felül a létező változót.
Ütközéskor a létrehozandó változó neve elé prefix kerül.
Minden létrehozandó változó neve elé prefix kerül.
PHP 4.0.5-től kezdve ez érvényes a numerikus indexű elemekre is.
Minden érvénytelen nevű változónév elé a prefix kerül.
PHP 4.0.5-től kezdve használható ez beállítás.
Csak akkor írja felül az adott nevű változót, ha az már létezik az aktuális szimbólimtáblában, egyébként nem csinál semmit.
Ez hasznos lehet, ha: érvényes változókat előre definiálni, majd létrehozni a $_REQUEST tömbön kívül definiált változókat.
PHP 4.2.0-től használható.
Csak akkor hozza létre a toldalékolt nevű változót, ha annak a toldalék nélküli megfelelője már létezik már létezik az aktuális szimbólimtáblában.
PHP 4.2.0-től használható.
A változókat referenciaként bontja ki, ami valójában azt jelenti, hogy a létrehozott változók referenciaként hivatkoznak az eredeti, var_array paraméterben átadott tömb elemeinek értékeire.
Ez a módosító tetszés szerint önállóan vagy más módosítókkal logikai VAGY kapcsolattal együtt használható a extract_type paraméter értékeként.
Ez a kapcsoló PHP 4.3.0. verziójától használható.
Ha nincs megadva az extract_type, akkor EXTR_OVERWRITE az alapértelmezés.
A prefix csak akkor szükséges, ha az extract_type EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID vagy EXTR_PREFIX_IF_EXISTS értékű.
Ha prefixszel ellátott változónév sem érvényes, akkor az nem kerül bele a szimbólumtáblába.
Az extract() a sikeresen beillesztett változók számával tér vissza.
Az extract függvény egy lehetséges használata azoknak a változóknak a szimbólumtáblába importálása, amelyeket a wddx_deserialize() adott vissza egy asszociatív tömbben.
Példa 1. extract() példa
?php / * Feltételezi, hogy a $var_array egy a wddx_deserialize által visszaadott tömb* / $méret = "nagy"; $var_tomb = array ("szín" = "kék", "méret "= "közepes", "alak" = "gömb"); extract ($var_tomb, EXTR_PREFIX_SAME, "wddx"); print "$szín, $méret, $alak, $wddx_méret\n";?
A fenti példa ezt eredményezi:
kék, nagy, gömb, közepes
A $méret változó nem lett felülírva az EXTR_PREFIX_SAME megadása miatt, amely azt eredményezte, hogy ehelyett a $wddx_méret változóba került az új érték.
Ha EXTR_SKIP-et használtunk volna, akkor a $wddx_méret sem került volna létrehozásra.
Az EXTR_OVERWRITE pedig azt okozta volna, hogy a $méret értéke "közepes "-re változott volna.
Az EXTR_PREFIX_ALL-lal pedig minden változó neve wddx előtaggal kezdődne: $wddx_szín, $wddx_méret és $wddx_alak.
Asszociatív tömböket kell használni, mert a numerikusan indexeltek nem adnak eredményt, kivéve EXTR_PREFIX_ALL vagy EXTR_PREFIX_INVALID jelzők használatakor.
Lásd még: compact()!
Előző
Tartalom
Következő
Fel