PHP Manuál | ||
---|---|---|
Predchádzajúci | Nasledujúci |
Táto funkcia sa používa na importovanie premenných z poľa do aktuálnej tabuľky symbolov. Berie si asociatívne pole var_array a spracováva kľúče ako názvy premenných a hodnoty ako hodnoty premenných. Pre každý pár kľúčov/hodnôt vytvorí premennú v aktuálnej tabuľke symbolov, vzhľadom na parametre extract_type a prefix.
Poznámka: Počínajúc verziou 4.0.5, táto funkcia vracia počet vyňatých premenných.
Poznámka: EXTR_IF_EXISTS a EXTR_PREFIX_IF_EXISTS boli predstavené vo verzii 4.2.0.
Poznámka: EXTR_REFS bol predstavený vo verzii 4.3.0.
extract() kontroluje každý kľúč, či má platný názov premennej. Tiež kontroluje kolízie s existujúcimi premennými v tabuľke symbolov. Spôsob, akým sa neplatné/číselné kľúče a kolízie spracovávajú, je určený extract_type. Môže byť jednou z následujúcich hodnôt:
Ak existuje kolízia, prepísať existujúcu premennú.
Ak existuje kolízia, neprepísať existujúci premennú.
Ak existuje kolízia, predradiť názov premennej s prefixom.
Predradiť všetky názvy premenných s prefix. Počínajúc PHP 4.0.5, toto zahŕňa aj číselné premenné.
Predradiť iba neplatné/číselné názvy premenných s prefixom. Tento indikátor bol pridaný v PHP 4.0.5.
Iba prepísať premennú, ak už existuje v aktuálnej tabuľke symbolov, inak neurobiť nič. Toto je užitočné pre difinovanie zoznamu platných premenných a následné vyňatie iba tých premenných, ktoré ste na príklad zadefinovali z $_REQUEST. Tento indikátor bol pridaný v PHP 4.2.0.
Ak v akutálnej tabuľke symbolov existuje nepredradená verzia rovnakej premennej, vytvoriť len predradené názvy premenných. Tento indikátor bol pridaný v PHP 4.2.0.
Vyníma premenné ako odkazy. Efektivita je v tom, že hodnoty importovaných premenných sa stále odkazujú na hodnoty parametra var_array. Tento indikátor môžte použiť ako samostatný alebo kombinovať ho s inýn indikátorom pomocou logického súčtu s extract_type. Tento indikátor bol pridaný v PHP 4.3.0.
Ak extract_type nie je špecifikovaný, usudzuje sa ako EXTR_OVERWRITE.
prefix sa vyžaduje iba ak extract_type je EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID alebo EXTR_PREFIX_IF_EXISTS. Ak predradený výsledok nie je platným názvom premennej, neimportuje sa do tabuľky do symbolov.
extract() vracia počet premenných úspešne importovaných do tabuľky symbolov.
Možným využitím pre extract je importovanie premenných nachádzajúcich sa v asociatívnom poli, vrátených pomocou wddx_deserialize(), do tabuľky symbolov.
Výsledkom horeuvedného programu bude:
modra, velkost, gula, stredna |
$velkost nebola prepísaná, pretože sme špecifikovali EXTR_PREFIX_SAME, ktorý indikoval, že bol vytvorený v $wddx_velkost. Ak by sa špecifikoval EXTR_SKIP, potom by sa $wddx_velkost dokonca ani nevytvoril. EXTR_OVERWRITE by spôsobil, že by $velkost mala hodnotu "stredna" a z EXTR_PREFIX_ALL by plynulo, že sa nazýva $wddx_farba, $wddx_velkost a $wddx_tvar.
Musíte použiť asociatívne pole, číselne indexované pole by nevyprodukovalo výsledky, ak by ste nepoužili EXTR_PREFIX_ALL alebo EXTR_PREFIX_INVALID.
Tiež pozri compact().
Predchádzajúci | Domov | Nasledujúci |
end | Hore | in_array |