extract

(PHP 3>= 3.0.7, PHP 4 >= 4.0.0)

extract -- Importovat prom∞nnΘ z pole do symbolovΘ tabulky

Popis

int extract ( array var_array [, int extract_type [, string prefix]])

Tato funkce se pou╛φvß k importu prom∞nn²ch z pole do aktivnφ symbolovΘ tabulky. P°ijφmß pole var_array; z klφΦ∙ vytvß°φ nßzvy prom∞nn²ch a z hodnot hodnoty t∞chto prom∞nn²ch. Vytvß°φ jednu prom∞nnou z ka╛dΘho klφΦ/hodnota pßru (s ohledem na argumenty extract_type a prefix).

Poznßmka: Od PHP 4.0.5 tato funkce vracφ poΦet extrahovan²ch prom∞nn²ch.

extract() ov∞°uje, jestli v╣echny klφΦe tvo°φ platnΘ nßzvy prom∞nn²ch, a takΘ jestli nekolidujφ s prom∞nn²mi existujφcφmi v aktivnφ symbolovΘ tabulce. Zp∙sob, jak²m se naklßdß s neplatn²mi/numerick²mi klφΦi a kolizemi zßvisφ na extract_type. Ten m∙╛e mφt jednu z nßsledujφcφch hodnot.

EXTR_OVERWRITE

Pokud existuje kolize, p°epsat existujφcφ prom∞nnou.

EXTR_SKIP

Pokud existuje kolize, nep°epsat existujφcφ prom∞nnou.

EXTR_PREFIX_SAME

Pokud existuje kolize, p°ed°adit p°ed nßzev novΘ prom∞nnΘ prefix.

EXTR_PREFIX_ALL

Opat°it prefixem prefix v╣echny nßzvy prom∞nn²ch. Od PHP 4.0.5 toto zahrnuje i ΦφselnΘ indexy.

EXTR_PREFIX_INVALID

Prefixem prefix opat°it pouze neplatnΘ/ΦφselnΘ nßzvy prom∞nn²ch. Tento p°φznak byl p°idßn v PHP 4.0.5.

Defaultnφ extract_type je EXTR_OVERWRITE.

Pozn.: prefix se vy╛aduje pouze pokud je extract_type EXTR_PREFIX_SAME, EXTR_PREFIX_ALL nebo EXTR_PREFIX_INVALID. Pokud v²sledn² nßzev (vΦ. prefixu) nenφ platn² nßzev prom∞nnΘ, nenaimportuje se do symbolovΘ tabulky.

extract() vracφ poΦet prom∞nn²ch ·sp∞╣n∞ naimportovan²ch do symbolovΘ tabulky.

Mo╛nΘ vyu╛itφ extract() je import prom∞nn²ch do symbolovΘ tabulky z asociativnφho pole vrßcenΘho wddx_deserialize().

P°φklad 1. Ukßzka extract()

<?php

/* P°edpoklßdejme, ╛e $var_array je pole vrßcenΘ
   z wddx_deserialize */

$size = "large";
$var_array = array ("color" => "blue",
                    "size"  => "medium",
                    "shape" => "sphere");
extract ($var_array, EXTR_PREFIX_SAME, "wddx");

print "$color, $size, $shape, $wddx_size\n";

?>

V²╣e uvedenß ukßzka vytiskne:
blue, large, sphere, medium

$size se nep°epsala, proto╛e bylo specifikovßno EXTR_PREFIX_SAME, tudφ╛ se vytvo°ila prom∞nnß $wddx_size. Pokud by bylo zadßno EXTR_SKIP, nevytvo°ila by se ani $wddx_size. EXTR_OVERWRITE by zp∙sobilo p°epsßnφ hodnoty $size na "medium", a EXTR_PREFIX_ALL by vytvo°ilo novΘ prom∞nnΘ pojmenovanΘ $wddx_color, $wddx_size a $wddx_shape.

U PHP verzφ ni╛╣φch ne╛ 4.0.5 musφte pou╛φt asociativnφ pole.

Viz takΘ: compact().