extractImportuje podane zmienne do tablicy symboli
&reftitle.description;
intextractarrayarrayintflagsEXTR_OVERWRITEstringprefix""
Importuje zmienne z tablicy do bieżącej
tablicy symboli.
Sprawdzany jest każdy element przekazanej tablicy array, żeby zobaczyć czy jest on poprawną nazwą zmiennej.
Funkcja sprawdza także kolizje z już istniejącymi zmiennymi
w tablicy symboli.
Nie używaj extract na niezaufanych danych, jak dane pochodzące od użytkownika
(np. w $_GET lub $_FILES).
&reftitle.parameters;
array
Tablica asocjacyjna. Ta funkcja traktuje jej klucze jak nazwy zmiennych i
wartości tej tablicy jak wartości zmiennych. Dla każdej pary klucz/wartość stworzona
zostanie zmienna w obecnej tablicy symboli, po poddaniu
ich pod działanie parametrów
flags i prefix.
Musisz użyć tablicy asocjacyjnej, tablica indeksowana numerycznie
nie zadziała, chyba że użyjesz EXTR_PREFIX_ALL lub
EXTR_PREFIX_INVALID.
flags
Sposób w jaki traktowane są niepoprawne klucze, klucze numeryczne i kolizje
jest określony przez flagi. Ten parametr może mieć jedną z następujących
wartości:
EXTR_OVERWRITE
Jeśli istnieje kolizja, nadpisz istniejącą zmienną.
EXTR_SKIP
Jeśli istnieje kolizja, nie nadpisuj istniejącej
zmiennej.
EXTR_PREFIX_SAMEJeśli istnieje kolizja, na początek nazwy zmiennej wstaw
prefix.
EXTR_PREFIX_ALL
Na początek każdej nazwy zmiennej wstaw
prefix.
EXTR_PREFIX_INVALID
Tylko w wypadku niepoprawnych/numerycznych nazw zmiennych
wstaw na początek wartość argumentu prefix.
EXTR_IF_EXISTS
Nadpisz zmienną tylko wtedy, gdy już istnieje w
bieżącej tablicy symboli. Jest to przydatne
do definiowania listy poprawnych zmiennych i ekstrakcji
tylko tych zmiennych, które już wcześniej zdefiniowano,
na przykład z tablicy $_REQUEST.
EXTR_PREFIX_IF_EXISTS
Prefiks zostanie dodany tylko do zmiennych których odpowiedniki
bez przedrostka już istnieją w bieżącej tablicy symboli.
EXTR_REFS
Ekstraktuje zmienne jako referencje. Oznacza to, że wartości
zaimportowanych zmiennych ciągle odnoszą się do wartości parametru
array. Flaga ta może być użyta
sama lub w połączaniu z innymi flagami poprzez użycie operacji OR na
parametrze flags.
Jeśli parametr flags nie został podany, to
używana jest opcja EXTR_OVERWRITE.
prefix
Zauważ, że parametr prefix jest wymagany tylko,
jeśli parametr flags to EXTR_PREFIX_SAME,
EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID
lub EXTR_PREFIX_IF_EXISTS. Jeśli
nazwa zmiennej po dodaniu prefiksu nie jest prawidłową nazwą zmiennej, nie jest
importowana do tablicy symboli. Prefiksy są automatycznie oddzielane od
kluczy tablicy poprzez znak "_".
&reftitle.returnvalues;
Zwraca liczbę zmiennych pomyślnie zaimportowanych do tablicy
symboli.
&reftitle.examples;
Przykład użycia extract
"niebieski",
"size" => "średni",
"shape" => "kwadrat"
);
extract($var_array, EXTR_PREFIX_SAME, "wddx");
echo "$color, $size, $shape, $wddx_size\n";
?>
]]>
&example.outputs;
Zmienna $size nie została nadpisana, ponieważ użyliśmy flai
EXTR_PREFIX_SAME, co spowodowało utworzenie
$wddx_size. Jeśli użylibyśmy EXTR_SKIP,
to $wddx_size nie zostałaby stworzona.
EXTR_OVERWRITE spowodowałoby że $size miałoby
wartość "średni", a EXTR_PREFIX_ALL stworzyłoby nowe zmienne
nazwane $wddx_color,
$wddx_size i
$wddx_shape.
&reftitle.notes;
Nie używaj extract na niezaufanych danych, jak
dane pochodzące od użytkownika
(np. $_GET, $_FILES itd).
Jeśli już musisz, upewnij się, że używasz jednej z wartości parametru flags,
która nie nadpisuje istniejących zmiennych takich jak
EXTR_SKIP i miej świadomość że powinieneś ekstrahować
w takiej smaej kolejności jaka określona jest w
variables_order w
&php.ini;.
&reftitle.seealso;
compactlist